JPH1196779A - Flash type memory, its controlling method, storage device, and computer system - Google Patents

Flash type memory, its controlling method, storage device, and computer system

Info

Publication number
JPH1196779A
JPH1196779A JP27052097A JP27052097A JPH1196779A JP H1196779 A JPH1196779 A JP H1196779A JP 27052097 A JP27052097 A JP 27052097A JP 27052097 A JP27052097 A JP 27052097A JP H1196779 A JPH1196779 A JP H1196779A
Authority
JP
Japan
Prior art keywords
block
area
flash memory
storage device
address
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.)
Granted
Application number
JP27052097A
Other languages
Japanese (ja)
Other versions
JP3552490B2 (en
Inventor
Kazuya Tanaka
和也 田中
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP27052097A priority Critical patent/JP3552490B2/en
Publication of JPH1196779A publication Critical patent/JPH1196779A/en
Application granted granted Critical
Publication of JP3552490B2 publication Critical patent/JP3552490B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce the number of times of rewriting a flash type memory and to enable executing a program on an expanded storage device. SOLUTION: A header area and a program data area are arranged for each block in a physical address of a flash memory 12 side. However, a header area and a program data area for each block are arranged continuously in a logical address of a processor 10 side. When data included a program data area (n) is rewritten, both of a block of the data area (n) and a block of a corresponding head area are required to rewrite. However, the program data area (n) is in the same block with the corresponding head area when it is considered on the physical address. Therefore, only the block may be rewritten.

Description

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

【0001】[0001]

【発明の属する技術分野】この発明は、フラッシュ型メ
モリ,その管理方法,記憶装置,コンピュータシステム
にかかり、更に具体的には、フラッシュ型メモリの効率
的な管理手法の改良に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a flash memory, a method of managing the same, a storage device, and a computer system. More specifically, the present invention relates to an improvement of an efficient flash memory management method.

【0002】[0002]

【背景技術】一般にフラッシュタイプのフローティング
ゲートトランジスタを含む電気的に消去可能なプログラ
マブル読出専用メモリ(EEPROM)は、現在市場で
容易に入手できる。これらのいわゆるフラッシュメモリ
は、機能・性能面でEPROMメモリと類似した不揮発
メモリであり、メモリ内で分割されているブロックを消
去する回路内プログラマブル動作を可能にするという機
能を更に有する。フラッシュメモリでは、以前に書き込
まれたブロック領域を前もって消去することで、その内
容の書き換えが行われる。
BACKGROUND OF THE INVENTION Generally, electrically erasable programmable read only memories (EEPROMs), including flash type floating gate transistors, are readily available on the market today. These so-called flash memories are non-volatile memories similar in function and performance to EPROM memories, and further have a function of enabling in-circuit programmable operation for erasing blocks divided in the memory. In a flash memory, the contents of a previously written block area are rewritten by erasing the block area in advance.

【0003】典型的なコンピュータシステムでは、オペ
レーティングシステム(以下、単に「OS」という)の
プログラムがそのシステムのデータ記憶装置のデータ管
理を担う。OSプログラムとの互換性を達成するために
必要かつ十分であるデータ記憶装置のアトリビュート
(属性)は、データ記憶装置のいかなる位置からもデー
タを読み出すことができ、これにデータを書き込むこと
ができることである。しかし、フラッシュメモリの場
合、データが既に書き込まれている領域には、その領域
のデータを消去しなければデータを書き込むことはでき
ない。このため、フラッシュメモリは、典型的な既存の
OSプログラムとは互換性がない。
In a typical computer system, a program of an operating system (hereinafter, simply referred to as "OS") manages data in a data storage device of the system. The attributes of the data storage device that are necessary and sufficient to achieve compatibility with the OS program are that data can be read from and written to any location on the data storage device. is there. However, in the case of a flash memory, data cannot be written to an area to which data has already been written unless data in that area is erased. For this reason, flash memory is not compatible with typical existing OS programs.

【0004】このような点に着目し、既存のOSプログ
ラムによってフラッシュメモリを管理することを可能に
するソフトウエアが先行技術において提案されている。
この先行技術のプログラムでは、フラッシュメモリを
「書込み1回読出し複数回」の装置として動作させる
か、「書込み複数回読出し複数回」の装置として動作さ
せている。前者は、以前に書き込まれているメモリ領域
を再利用することはできない装置であり、補助記憶装置
や拡張記憶装置として使用できる。後者は、以前に書き
込まれているメモリ領域を再利用可能とし、その領域中
にはフラッシュメモリの書き換回数を少なくするような
制御を持つ補助記憶装置(半導体ファイル記憶装置)が
ある。
[0004] Focusing on such a point, software that enables a flash memory to be managed by an existing OS program has been proposed in the prior art.
In this prior art program, the flash memory is operated as a "write once read multiple times" device, or is operated as a "write multiple times read multiple times" device. The former is a device that cannot reuse a memory area that has been previously written, and can be used as an auxiliary storage device or an extended storage device. In the latter, an auxiliary storage device (semiconductor file storage device) having a control for reducing the number of times of rewriting of the flash memory is provided in the area in which a previously written memory area can be reused.

【0005】[0005]

【発明が解決しようとする課題】上述のような先行技術
に見られる装置によれば、フラッシュメモリを使用した
拡張記憶装置上では書換回数が少なくなるような制御構
造を持たずにROMエグゼキュータブルなプログラムを
動作させている。つまり、フラッシュメモリのデータを
書き換えるときは、全ブロックを一括して消去し、その
後、データを記憶させる必要がある。また、フラッシュ
メモリの書換回数を少なくするような制御構造を持つ装
置としては補助記憶装置(半導体ファイル記憶装置)が
あるものの、フラッシュメモリを使用した拡張記憶装置
上でプログラムの実行を可能とする装置にはない。補助
記憶装置において書換回数を少なくするためにその情報
(書換回数テーブル)を異なるメモリ上に記憶する方式
があるが、コスト高となる。また、同一フラッシュメモ
リ上に記憶する方式では、データを完全に連続的な配置
できることができない。
According to the apparatus disclosed in the prior art as described above, a ROM executable is not provided on an extended storage device using a flash memory without a control structure for reducing the number of rewrites. Running a simple program. That is, when rewriting data in the flash memory, it is necessary to erase all blocks at once and then store the data. An auxiliary storage device (semiconductor file storage device) is known as a device having a control structure for reducing the number of rewrites of the flash memory, but a device capable of executing a program on an extended storage device using a flash memory. Not in In order to reduce the number of rewrites in the auxiliary storage device, there is a method of storing the information (the number of rewrites table) in a different memory, but the cost increases. Further, in the method of storing data on the same flash memory, data cannot be arranged completely continuously.

【0006】この発明は、以上の点に着目したもので、
その目的は、フラッシュメモリを使用した拡張記憶装置
上で、フラッシュメモリの書換回数を少なくするような
制御構造を持つ装置を提供することである。また、他の
目的は、主記憶装置にプログラムをロードすることな
く、拡張記憶装置上でプログラムの実行を可能とするこ
とである。更に他の目的は、フラッショメモリを使用し
た補助記憶装置として、書換回数を少なくする制御構造
をもちながら、連続的な論理アドレスを不連続な物理ア
ドレスに変換するメモリ管理装置によって、隣接するブ
ロックのデータ領域ブロックを、アクセスのためのオー
バヘッドを低減して、高速アクセス可能とすることであ
る。
The present invention focuses on the above points,
An object of the present invention is to provide a device having a control structure for reducing the number of times of rewriting of a flash memory on an extended storage device using the flash memory. Another object is to enable execution of a program on an extended storage device without loading the program into a main storage device. Still another object is to provide an auxiliary storage device using a flash memory as a memory management device that converts a continuous logical address to a discontinuous physical address while having a control structure for reducing the number of times of rewriting. Is to reduce the overhead for access and to enable high-speed access to the data area block.

【0007】[0007]

【課題を解決するための手段】前記目的を達成するた
め、本発明のフラッシュ型メモリは、自己のブロックの
管理情報を記憶する第1の領域と、主情報を記憶する第
2の領域とを、各ブロック毎に設けたことを特徴とす
る。本発明の記憶装置は、前記フラッシュ型メモリ、の
隣接するブロックの第1の領域もしくは第2の領域が、
連続する論理アドレスとなるように物理アドレスと論理
アドレスの変換を行うアドレス変換手段を備えたことを
特徴とする。前記アドレス変換手段は、例えば、ワイヤ
ードロジックによって構成される。また、前記管理情報
には、例えば、そのブロックの書込回数と、そのブロッ
クを消去した時刻とが含まれる。他の発明は、ブロック
をイレースする際に、書込回数が同じであれば、ブロッ
クの消去時刻が古い方を優先的に選択する制御手段を備
えたことを特徴とする。
In order to achieve the above object, a flash memory according to the present invention comprises a first area for storing management information of its own block and a second area for storing main information. , Provided for each block. In the storage device of the present invention, a first area or a second area of an adjacent block of the flash memory is
An address conversion means for converting a physical address and a logical address so as to be continuous logical addresses is provided. The address conversion means is constituted by, for example, wired logic. Further, the management information includes, for example, the number of times of writing of the block and the time of erasing the block. Another feature of the present invention is that, when erasing a block, if the number of times of writing is the same, a control means for preferentially selecting a block having the older erase time is provided.

【0008】本発明のコンピュータシステムは、前記フ
ラッシュ型メモリ上で、前記第2の領域に記憶されてい
るプログラムを実行するプロセッサを含むことを特徴と
する。本発明のフラッシュ型メモリの管理方法は、自己
のブロックの管理情報を記憶する第1の領域と、主情報
を記憶する第2の領域とを、各ブロック毎に設けること
を特徴とする。主要な形態の一つは、隣接するブロック
の第1の領域が連続する論理アドレスとなるように、物
理アドレスと論理アドレスの変換を行うことを特徴とす
る。他の形態は、隣接するブロックの第2の領域が連続
する論理アドレスとなるように、物理アドレスと論理ア
ドレスの変換を行うことを特徴とする。
[0008] The computer system of the present invention is characterized in that it includes a processor for executing a program stored in the second area on the flash memory. A flash memory management method according to the present invention is characterized in that a first area for storing management information of its own block and a second area for storing main information are provided for each block. One of the main modes is characterized in that the conversion between the physical address and the logical address is performed so that the first area of the adjacent block is a continuous logical address. Another embodiment is characterized in that the conversion between the physical address and the logical address is performed so that the second area of the adjacent block has a continuous logical address.

【0009】この発明の前記及び他の目的,特徴,利点
は、以下の詳細な説明及び添付図面から明瞭になろう。
The above and other objects, features and advantages of the present invention will become apparent from the following detailed description and the accompanying drawings.

【0010】[0010]

【発明の実施の形態】以下、本発明の実施の形態につい
て詳細に説明する。本発明は、例えば図1に示すよう
に、プロセッサ10,フラッシュメモリ12およびその
制御装置14を含む拡張もしくは補助の記憶装置,RA
M(主記憶装置)16を含むコンピュータシステムに適
用される。フラッシュメモリ12は、その書換回数を少
なくなるようにするために、フラッシュメモリ12のブ
ロック単位の書換情報(イレース情報)を持つ領域(ヘ
ッダエリア)と、フラッシュメモリ12上のプログラム
やデータを記憶する領域(プログラム・データエリア)
を持つ(後述する図4参照)。フラッシュメモリ制御装
置14は、フラッシュメモリ12へのリード,ライト,
チップセレクトなどの信号を生成し、プロセッサ10か
らフラッシュメモリ12をインターフェース(I/F)
する役割を担う。
Embodiments of the present invention will be described below in detail. The present invention relates to an extended or auxiliary storage device including a processor 10, a flash memory 12, and a control device 14 thereof, as shown in FIG.
The present invention is applied to a computer system including an M (main storage device) 16. In order to reduce the number of times of rewriting, the flash memory 12 stores an area (header area) having rewriting information (erase information) in units of blocks of the flash memory 12 and programs and data on the flash memory 12. Area (program data area)
(See FIG. 4 described later). The flash memory control device 14 reads, writes,
A signal such as a chip select is generated, and the flash memory 12 is interfaced from the processor 10 (I / F).
Play a role.

【0011】ヘッダエリアには、例えばイレースの回数
や時刻を記述する。ここで、プロセッサ10の論理アド
レスをフラッシュメモリ12のブロック数の単位に分割
してフラッシュメモリ12に記憶することができれば、
フラッシュメモリ12の書換回数の低減とフラッシュメ
モリ12の管理方法が簡単になる。すなわち、書換える
べきデータが複数のブロックに跨っていると、それら複
数のブロックについて書換処理を行わなければならな
い。しかし、書換えるべきデータが一つのブロック内に
あれば、そのブロックのみを書換えればよく、フラッシ
ュメモリ12の書換回数を低減して管理を簡略化するこ
とができる。
In the header area, for example, the number of times of erasing and the time are described. Here, if the logical address of the processor 10 can be divided into units of the number of blocks of the flash memory 12 and stored in the flash memory 12,
The number of times of rewriting of the flash memory 12 can be reduced and the method of managing the flash memory 12 can be simplified. That is, if the data to be rewritten extends over a plurality of blocks, the rewriting process must be performed on the plurality of blocks. However, if data to be rewritten is in one block, only that block needs to be rewritten, and the number of times of rewriting of the flash memory 12 can be reduced to simplify management.

【0012】そこで、図2に示す装置を用いて、図3に
示すメモリマッピングを行う。つまり、ヘッダエリアや
プログラム・データエリアを、ブロック数の単位にそれ
ぞれ分割する。そして分割された各エリアを、フラッシ
ュメモリの中に効率よくブロック単位で配置する。すな
わち、同時に書換えが必要となる分割ヘッダエリアと分
割プログラム・データエリアが、同一のブロックに含ま
れるように配置する。このような配置は、プロセッサ1
0の論理アドレスをフラッシュメモリ12の物理アドレ
スに変換するアドレス変換装置20によって実現する。
Therefore, the memory mapping shown in FIG. 3 is performed using the device shown in FIG. That is, the header area and the program / data area are divided into units of the number of blocks. Then, the divided areas are efficiently arranged in block units in the flash memory. That is, the divided header area and the divided program / data area which need to be rewritten at the same time are arranged so as to be included in the same block. Such an arrangement is similar to processor 1
This is realized by an address translation device 20 that translates a logical address of 0 into a physical address of the flash memory 12.

【0013】図4に、ブロック構造を持つフラッシュメ
モリ12のメモリマップの一例を示す。この例は、1ブ
ロックがLバイトで、かつ全体でm+1ブロックをも
つ、L×(m+1)バイトを記憶できるフラッシュメモ
リである。各ブロックを管理するためにフラッシュメモ
リ12の書換回数などの情報を持つヘッダエリアとし
て、Pバイト必要であるとすると、全体でP×(m+
1)バイトのヘッダエリアが必要である。従って、この
システムは、(L−P)×(m+1)バイトのプログラ
ム・データエリアを持つことになる。
FIG. 4 shows an example of a memory map of the flash memory 12 having a block structure. This example is a flash memory capable of storing L × (m + 1) bytes, each block being L bytes and having a total of m + 1 blocks. Assuming that P bytes are required as a header area having information such as the number of times of rewriting of the flash memory 12 to manage each block, P × (m +
1) A byte header area is required. Therefore, this system has a program data area of (LP) × (m + 1) bytes.

【0014】このようなエリア構成のフラッシュメモリ
12に対し、図2に示したアドレス変換装置18による
変換を行う。詳述すると、図5に示すように、プロセッ
サ10の論理アドレスでは各ブロックのヘッダエリアを
順にブロック0,ブロック1,……,ブロックmのよう
に連続して配置する。一方、プログラム・データエリア
については、順にブロック0,ブロック1,……,ブロ
ックmとヘッダエリア部分を抜いて連続した配置とす
る。これによって、各ブロックのヘッダエリアが、それ
ぞれ連続する論理アドレスで配置されることになる。ま
た同様に、各ブロックのプログラム・データエリアも、
それぞれ連続する論理アドレスで配置されることにな
る。
The address conversion device 18 shown in FIG. 2 performs conversion on the flash memory 12 having such an area configuration. More specifically, as shown in FIG. 5, in the logical address of the processor 10, the header area of each block is sequentially arranged as block 0, block 1,..., Block m. On the other hand, in the program data area, the block 0, block 1,... As a result, the header area of each block is arranged with a continuous logical address. Similarly, the program data area of each block is also
They are arranged at consecutive logical addresses.

【0015】このようなアドレス配置において、例えば
プログラム・データエリアnに含まれるデータを書き換
える必要が生じたとする。プロセッサ10の論理アドレ
ス上でみると、プログラム・データエリアnのヘッダエ
リアが含まれるブロックと、プログラム・データエリア
nに相当するブロックの合計2つのブロックを書き換え
なければならない。しかし、フラッシュメモリ12の物
理アドレス上でみると、プログラム・データエリアnは
該当するヘッダエリアとともに同一ブロック内にある。
従って、そのブロックのみを書き換えればよい。
In such an address arrangement, for example, it is assumed that it is necessary to rewrite data included in the program data area n. In terms of the logical address of the processor 10, a total of two blocks, the block including the header area of the program data area n and the block corresponding to the program data area n, must be rewritten. However, when viewed from the physical address of the flash memory 12, the program data area n is in the same block as the corresponding header area.
Therefore, only that block needs to be rewritten.

【0016】このように、本形態によれば、フラッシュ
メモリの書換回数を低減する高速の管理プログラムがヘ
ッダエリアの情報を読み、実行プログラムやデータの書
換えや追記を簡便に実現できる。また、論理アドレス上
でプログラム・データエリアのブロック間が連続的に配
置しているため、無駄な空きスペースのないデータ構造
を持つ拡張記憶装置および補助記憶装置を実現でき、か
つフラッシュメモリ上での実行プログラムの動作が可能
となる。更に、ヘッダエリアは、自己が管理するブロッ
クの中に記憶されることになるため、ヘッダエリアのた
めの別個のメモリ領域を必要としない。
As described above, according to this embodiment, the high-speed management program for reducing the number of times of rewriting of the flash memory reads the information in the header area, and can easily realize rewriting and additional writing of the execution program and data. In addition, since the blocks of the program data area are continuously arranged on the logical address, it is possible to realize an extended storage device and an auxiliary storage device having a data structure with no useless empty space, and a flash memory. The operation of the execution program becomes possible. Furthermore, since the header area is stored in a block managed by itself, no separate memory area is required for the header area.

【0017】フラッシュメモリの各ブロックの管理方法
を説明すると、最初はすべて、ヘッダエリアには「FF
h(16進表示)」が記憶されている。フラッシュメモ
リは、初期化しなければ拡張記憶装置や補助記憶装置と
して使用できないため、ブロック0のヘッダエリアに書
換回数0回と現時刻を記憶し、同様にブロック1のヘッ
ダエリアに書換回数0回と現時刻を記憶し、……という
具合に昇順で最後のブロックまで繰り返し記憶する。
A method of managing each block of the flash memory will be described.
h (hexadecimal notation) "is stored. Since the flash memory cannot be used as an extended storage device or an auxiliary storage device unless it is initialized, the flash memory stores the rewrite count of 0 and the current time in the header area of block 0, and similarly stores the rewrite count of 0 in the header area of block 1. The current time is stored, and so on until the last block is stored in ascending order.

【0018】拡張記憶装置や補助記憶装置としてフラッ
シュメモリを使用するシステムでは、データや実行プロ
グラムは追記させる構造でメモリに記憶させるのが通例
である。この追記させる構造では、更新されたデータや
実行プログラムは追記されるが、以前のデータや実行プ
ログラムは無効となるような構造を持っている。そし
て、繰り返しデータや実行プログラムが更新されていく
と、無駄なメモリエリアが拡大していく。そこで、フラ
ッシュメモリ上のメモリ領域の再配置を行う必要があ
る。そのとき、イレースするブロックの候補として、書
換回数の少ないブロック優先してイレースする。このと
き、書換回数が同じブロックが複数あり、いずれかをイ
レースする必要があるときは、前回のブロック消去時刻
の古い方を優先してイレースする。
In a system using a flash memory as an extended storage device or an auxiliary storage device, it is customary to store data and an execution program in a memory in a structure to be additionally written. In the structure to be added, the updated data and the execution program are added, but the previous data and the execution program are invalidated. Then, as the data and the execution program are repeatedly updated, a useless memory area is expanded. Therefore, it is necessary to relocate the memory area on the flash memory. At this time, as a candidate for a block to be erased, erasing is performed with priority given to a block having a small number of rewrites. At this time, when there are a plurality of blocks having the same number of rewrites and one of the blocks needs to be erased, the erase is performed with priority given to the earlier block erase time.

【0019】実際にブロックを消去するときであるが、
そのブロックのヘッダエリアに記憶している以前の書換
回数「U」を一時的に別メモリあるいはレジスタに保持
し、その後フラッシュメモリのブロックを消去させるプ
ログラムによって目的とするブロック(ヘッダエリア及
びデータ・プログラムエリア)を消去して初期化する。
その後すぐに、そのブロックのヘッダエリアに以前の書
換回数に「1」インクリメントした値「U+1」を書き
込み、同時に現時刻も書き込む。そして必要に応じて、
データ・プログラムを再配置する。以下、本形態の実施
例について説明する。
When actually erasing a block,
The previous number of rewrites “U” stored in the header area of the block is temporarily stored in another memory or register, and then the target block (header area and data program) is erased by a program that erases the block of the flash memory. Area) and initialize.
Immediately thereafter, a value “U + 1” obtained by incrementing the previous rewrite count by “1” is written into the header area of the block, and at the same time, the current time is also written. And if necessary,
Relocate the data program. Hereinafter, examples of the present embodiment will be described.

【0020】[0020]

【実施例1】図1に示したような、汎用CPUもしくは
汎用マイコンであるプロセッサ10,、高速にアクセス
可能なRAM16,フラッシュメモリ12及びその制御
装置14を含む拡張記憶装置もしくは補助記憶装置をも
つようなシステムにおいて、本実施例では、拡張記憶装
置もしくは補助記憶装置に使用するフラッシュメモリ1
2として、2メガビット×8で合計32個の64Kバイ
トのブロックをもつものを搭載したとする。
Embodiment 1 As shown in FIG. 1, a processor 10, which is a general-purpose CPU or a general-purpose microcomputer, a high-speed accessible RAM 16, a flash memory 12, and an extended storage device or an auxiliary storage device including its control device 14 are provided. In such a system, in this embodiment, the flash memory 1 used for the extended storage device or the auxiliary storage device is used.
Suppose that a device having a total of 32 64 Kbyte blocks of 2 Mbit × 8 is mounted as 2.

【0021】このフラッシュメモリ12は、図6に示す
ような物理アドレスのメモリマップを持つ。各ブロック
は、OSプログラム又は制御プログラムが管理するため
に、1ブロック毎に自己のヘッダエリアを持つ。ヘッダ
エリアには、その内容として、ブロックの消去回数や消
去した時刻などを図7に示すような構造で記録されてお
り、16バイト分の容量をとる。なお、図7中に示すア
ドレスは、フラッシュメモリ12の物理アドレスであ
る。ブロックnのヘッダエリアに記憶されている内容を
参照して、OSプログラム又は制御プログラムがブロッ
クnの消去や書換えを管理する。
The flash memory 12 has a memory map of physical addresses as shown in FIG. Each block has its own header area for each block to be managed by the OS program or the control program. In the header area, the number of times the block has been erased, the time at which the block was erased, and the like are recorded in the header area in a structure as shown in FIG. 7 and has a capacity of 16 bytes. The addresses shown in FIG. 7 are physical addresses of the flash memory 12. With reference to the contents stored in the header area of the block n, the OS program or the control program manages erasing and rewriting of the block n.

【0022】フラッシュメモリ12の物理アドレスは、
プロセッサ10から見た論理アドレスに変換され、図3
もしくは図5に示したように、各ブロックのヘッダエリ
アや、プログラム・データエリアのブロックが連続する
ようになる。この論理アドレスと物理アドレスとの変換
の計算式の一例を示すと、以下のようになる。なお、数
値nは、10進数表記で0から31までの数字である。
このnを16進数に変換した数値をN(h)とする。物
理アドレスの値を「16進数:[PA(h)],PA
[20:0]」とし、論理アドレスの値を「16進数:
[LA(h)],LA[20:0]」とし、ブロックN
(h)を用いて変換式を示すと、以下のようになる。
The physical address of the flash memory 12 is
It is converted into a logical address as seen from the processor 10, and
Alternatively, as shown in FIG. 5, the header area of each block and the blocks of the program / data area become continuous. An example of a calculation formula for conversion between the logical address and the physical address is as follows. The numerical value n is a number from 0 to 31 in decimal notation.
A numerical value obtained by converting n into a hexadecimal number is defined as N (h). Change the value of the physical address to “hexadecimal: [PA (h)], PA
[20: 0] ”, and the value of the logical address is“ hexadecimal number:
[LA (h)], LA [20: 0] "and the block N
The following shows the conversion equation using (h).

【0023】 IF(000000h≦LA(h)≦00FFEFh) PA(h)=LA(h) ELSE IF(00FFF0h≦LA(h)≦01FFDFh) PA(h)=LA(h)+10(h) ELSE IF(00FFE0h≦LA(h)≦02FFCFh) PA(h)=LA(h)+20(h) ELSE IF(02FFD0h≦LA(h)≦03FFBFh) PA(h)=LA(h)+30(h) ELSE IF(03FFC0h≦LA(h)≦04FFAFh) PA(h)=LA(h)+40(h) ELSE IF(04FFB0h≦LA(h)≦05FF9Fh) PA(h)=LA(h)+50(h) ELSE IF(05FFA0h≦LA(h)≦06FF8Fh) PA(h)=LA(h)+60(h) ELSE IF(06FF90h≦LA(h)≦07FF7Fh) PA(h)=LA(h)+70(h) ELSE IF(07FF80h≦LA(h)≦08FF6Fh) PA(h)=LA(h)+80(h) ELSE IF(08FF70h≦LA(h)≦09FF5Fh) PA(h)=LA(h)+90(h) ELSE IF(09FF60h≦LA(h)≦0AFF4Fh) PA(h)=LA(h)+A0(h) ELSE IF(0AFF50h≦LA(h)≦0BFF3Fh) PA(h)=LA(h)+B0(h) ELSE IF(0BFF40h≦LA(h)≦0CFF2Fh) PA(h)=LA(h)+C0(h) ELSE IF(0CFF30h≦LA(h)≦0DFF1Fh) PA(h)=LA(h)+D0(h) ELSE IF(0DFF20h≦LA(h)≦0EFF0Fh) PA(h)=LA(h)+E0(h) ELSE IF(0EFF10h≦LA(h)≦0FFEFFh) PA(h)=LA(h)+F0(h) ELSE IF(0FFF00h≦LA(h)≦10FEEFh) PA(h)=LA(h)+100(h) ELSE IF(10FEF0h≦LA(h)≦11FEDFh) PA(h)=LA(h)+110F(h) ELSE IF(11FEE0h≦LA(h)≦12FECFh) PA(h)=LA(h)+120(h) ELSE IF(12FED0h≦LA(h)≦13FEBFh) PA(h)=LA(h)+130(h) ELSE IF(13FEC0h≦LA(h)≦14FEAFh) PA(h)=LA(h)+140(h) ELSE IF(14FEB0h≦LA(h)≦15FE9Fh) PA(h)=LA(h)+150(h) ELSE IF(15FEA0h≦LA(h)≦16FE8Fh) PA(h)=LA(h)+160(h) ELSE IF(16FE90h≦LA(h)≦17FE7Fh) PA(h)=LA(h)+170(h) ELSE IF(17FE80h≦LA(h)≦18FE6Fh) PA(h)=LA(h)+180(h) ELSE IF(18FE70h≦LA(h)≦19FE5Fh) PA(h)=LA(h)+190(h) ELSE IF(19FE60h≦LA(h)≦1AFE4Fh) PA(h)=LA(h)+1A0(h) ELSE IF(1AFE50h≦LA(h)≦1BFE3Fh) PA(h)=LA(h)+1B0(h) ELSE IF(1BFE40h≦LA(h)≦1CFE2Fh) PA(h)=LA(h)+1C0(h) ELSE IF(1CFE30h≦LA(h)≦1DFE1Fh) PA(h)=LA(h)+1D0(h) ELSE IF(1DFE20h≦LA(h)≦1EFE0Fh) PA(h)=LA(h)+1E0(h) ELSE IF(1EFE10h≦LA(h)≦1FFDFFh) PA(h)=LA(h)+1F0(h) ELSE IF(1FFE00h≦LA(h)≦1FFE0Fh) PA(h)=LA(h)−1EFE10(h) ELSE IF(1FFE10h≦LA(h)≦1FFE1Fh) PA(h)=LA(h)−1DFE20(h) ELSE IF(1FFE20h≦LA(h)≦1FFE2Fh) PA(h)=LA(h)−1CFE30(h) ELSE IF(1FFE30h≦LA(h)≦1FFE3Fh) PA(h)=LA(h)−1BFE40(h) ELSE IF(1FFE40h≦LA(h)≦1FFE4Fh) PA(h)=LA(h)−1AFE50(h) ELSE IF(1FFE50h≦LA(h)≦1FFE5Fh) PA(h)=LA(h)−19FE60(h) ELSE IF(1FFE60h≦LA(h)≦1FFE6Fh) PA(h)=LA(h)−18FE70(h) ELSE IF(1FFE70h≦LA(h)≦1FFE7Fh) PA(h)=LA(h)−17FE80(h) ELSE IF(1FFE80h≦LA(h)≦1FFE8Fh) PA(h)=LA(h)−16FE90(h) ELSE IF(1FFE90h≦LA(h)≦1FFE9Fh) PA(h)=LA(h)−15FEA0(h) ELSE IF(1FFEA0h≦LA(h)≦1FFEAFh) PA(h)=LA(h)−14FEB0(h) ELSE IF(1FFEB0h≦LA(h)≦1FFEBFh) PA(h)=LA(h)−13FEC0(h) ELSE IF(1FFEC0h≦LA(h)≦1FFECFh) PA(h)=LA(h)−12FED0(h) ELSE IF(1FFED0h≦LA(h)≦1FFEDFh) PA(h)=LA(h)−11FEE0(h) ELSE IF(1FFEE0h≦LA(h)≦1FFEEFh) PA(h)=LA(h)−10FEF0(h) ELSE IF(1FFEF0h≦LA(h)≦1FFEFFh) PA(h)=LA(h)−FFF00(h) ELSE IF(1FFF00h≦LA(h)≦1FFF0Fh) PA(h)=LA(h)−EFF10(h) ELSE IF(1FFF10h≦LA(h)≦1FFF1Fh) PA(h)=LA(h)−DFF20(h) ELSE IF(1FFF20h≦LA(h)≦1FFF2Fh) PA(h)=LA(h)−CFF30(h) ELSE IF(1FFF30h≦LA(h)≦1FFF3Fh) PA(h)=LA(h)−BFF40(h) ELSE IF(1FFF40h≦LA(h)≦1FFF4Fh) PA(h)=LA(h)−AFF50(h) ELSE IF(1FFF50h≦LA(h)≦1FFF5Fh) PA(h)=LA(h)−9FF60(h) ELSE IF(1FFF60h≦LA(h)≦1FFF6Fh) PA(h)=LA(h)−8FF70(h) ELSE IF(1FFF70h≦LA(h)≦1FFF7Fh) PA(h)=LA(h)−7FF80(h) ELSE IF(1FFF80h≦LA(h)≦1FFF8Fh) PA(h)=LA(h)−6FF90(h) ELSE IF(1FFF90h≦LA(h)≦1FFF9Fh) PA(h)=LA(h)−5FFA0(h) ELSE IF(1FFFA0h≦LA(h)≦1FFFAFh) PA(h)=LA(h)−4FFB0(h) ELSE IF(1FFFB0h≦LA(h)≦1FFFBFh) PA(h)=LA(h)−3FFC0(h) ELSE IF(1FFFC0h≦LA(h)≦1FFFCFh) PA(h)=LA(h)−2FFD0(h) ELSE IF(1FFFD0h≦LA(h)≦1FFFDFh) PA(h)=LA(h)−1FFE0(h) ELSE IF(1FFFE0h≦LA(h)≦1FFFEFh) PA(h)=LA(h)−FFF0(h) ELSE IF(1FFFF0h≦LA(h)≦1FFFFFh) PA(h)=LA(h)IF (000000h ≦ LA (h) ≦ 00FFEFh) PA (h) = LA (h) ELSE IF (00FFF0h ≦ LA (h) ≦ 01FFDFh) PA (h) = LA (h) +10 (h) ELSE IF (00FFE0h ≦ LA (h) ≦ 02FFCFh) PA (h) = LA (h) +20 (h) ELSE IF (02FFD0h ≦ LA (h) ≦ 03FFBFh) PA (h) = LA (h) +30 (h) ELSE IF (03FFC0h ≦ LA (h) ≦ 04FFAFh) PA (h) = LA (h) +40 (h) ELSE IF (04FFB0h ≦ LA (h) ≦ 05FF9Fh) PA (h) = LA (h) +50 (h) ELSE IF (05FFA0h ≦ LA (h) ≦ 06FF8Fh) PA (h) = LA (h) +60 (h) ELSE IF (0 6FF90h ≦ LA (h) ≦ 07FF7Fh) PA (h) = LA (h) +70 (h) ELSE IF (07FF80h ≦ LA (h) ≦ 08FF6Fh) PA (h) = LA (h) +80 (h) ELSE IF ( 08FF70h ≦ LA (h) ≦ 09FF5Fh) PA (h) = LA (h) +90 (h) ELSE IF (09FF60h ≦ LA (h) ≦ 0AFF4Fh) PA (h) = LA (h) + A0 (h) ELSE IF ( 0AFF50h ≦ LA (h) ≦ 0BFF3Fh) PA (h) = LA (h) + B0 (h) ELSE IF (0BFF40h ≦ LA (h) ≦ 0CFF2Fh) PA (h) = LA (h) + C0 (h) ELSE IF ( 0CFF30h ≦ LA (h) ≦ 0DFF1Fh) PA (h) = LA (h) + D0 (h) ELSE IF (0DFF2 h ≦ LA (h) ≦ 0EFF0Fh) PA (h) = LA (h) + E0 (h) ELSE IF (0EFF10h ≦ LA (h) ≦ 0FFEFFFh) PA (h) = LA (h) + F0 (h) ELSE IF ( 0FFFF00h ≦ LA (h) ≦ 10FEEFh) PA (h) = LA (h) +100 (h) ELSE IF (10FEF0h ≦ LA (h) ≦ 11FEDFh) PA (h) = LA (h) + 110F (h) ELSE IF ( 11FEEE0h ≦ LA (h) ≦ 12FECFh) PA (h) = LA (h) +120 (h) ELSE IF (12FED0h ≦ LA (h) ≦ 13FEBFh) PA (h) = LA (h) +130 (h) ELSE IF ( 13FEC0h ≦ LA (h) ≦ 14FEAFh) PA (h) = LA (h) +140 (h) ELSE IF (14F B0h ≦ LA (h) ≦ 15FE9Fh) PA (h) = LA (h) +150 (h) ELSE IF (15FEA0h ≦ LA (h) ≦ 16FE8Fh) PA (h) = LA (h) +160 (h) ELSE IF ( 16FE90h ≦ LA (h) ≦ 17FE7Fh) PA (h) = LA (h) +170 (h) ELSE IF (17FE80h ≦ LA (h) ≦ 18FE6Fh) PA (h) = LA (h) +180 (h) ELSE IF ( 18FE70h ≦ LA (h) ≦ 19FE5Fh) PA (h) = LA (h) +190 (h) ELSE IF (19FE60h ≦ LA (h) ≦ 1AFE4Fh) PA (h) = LA (h) + 1A0 (h) ELSE IF ( 1AFE50h ≦ LA (h) ≦ 1BFE3Fh) PA (h) = LA (h) + 1B0 (h) ELSE IF (1 BFE40h ≦ LA (h) ≦ 1CFE2Fh) PA (h) = LA (h) + 1C0 (h) ELSE IF (1CFE30h ≦ LA (h) ≦ 1DFE1Fh) PA (h) = LA (h) + 1D0 (h) ELSE IF ( 1DFE20h ≦ LA (h) ≦ 1EFE0Fh) PA (h) = LA (h) + 1E0 (h) ELSE IF (1EFE10h ≦ LA (h) ≦ 1FFDFFh) PA (h) = LA (h) + 1F0 (h) ELSE IF ( 1FFE00h≤LA (h) ≤1FFE0Fh) PA (h) = LA (h) -1EFE10 (h) ELSE IF (1FFE10h≤LA (h) ≤1FFE1Fh) PA (h) = LA (h) -1DFE20 (h) ELSE IF (1FFE20h ≦ LA (h) ≦ 1FFE2Fh) PA (h) = LA (h) −1CFE30 (H) ELSE IF (1FFE30h ≦ LA (h) ≦ 1FFE3Fh) PA (h) = LA (h) −1BFE40 (h) ELSE IF (1FFE40h ≦ LA (h) ≦ 1FFE4Fh) PA (h) = LA (h) -1AFE50 (h) ELSE IF (1FFE50h ≦ LA (h) ≦ 1FFE5Fh) PA (h) = LA (h) −19FE60 (h) ELSE IF (1FFE60h ≦ LA (h) ≦ 1FFE6Fh) PA (h) = LA ( h) -18FE70 (h) ELSE IF (1FFE70h ≦ LA (h) ≦ 1FFE7Fh) PA (h) = LA (h) −17FE80 (h) ELSE IF (1FFE80h ≦ LA (h) ≦ 1FFE8Fh) PA (h) = LA (h) -16FE90 (h) ELSE IF (1FFE90h ≦ LA (h) ≦ 1F E9Fh) PA (h) = LA (h) -15FEA0 (h) ELSE IF (1FFEA0h ≦ LA (h) ≦ 1FFEAFh) PA (h) = LA (h) −14FEB0 (h) ELSE IF (1FFEB0h ≦ LA (h) ) ≦ 1FFEBFh) PA (h) = LA (h) −13FEC0 (h) ELSE IF (1FFEC0h ≦ LA (h) ≦ 1FFECFh) PA (h) = LA (h) −12FED0 (h) ELSE IF (1FFED0h ≦ LA) (H) ≦ 1FFEDFh) PA (h) = LA (h) −11FEE0 (h) ELSE IF (1FFEE0h ≦ LA (h) ≦ 1FFEEFh) PA (h) = LA (h) −10FFEF0 (h) ELSE IF (1FFEF0h) ≦ LA (h) ≦ 1FFEFFh) PA (h) = LA (h) −FFFF00 (h) E SE IF (1FFFF00h ≦ LA (h) ≦ 1FFFOFh) PA (h) = LA (h) −EFF10 (h) ELSE IF (1FFF10h ≦ LA (h) ≦ 1FFF1Fh) PA (h) = LA (h) −DFF20 ( h) ELSE IF (1FFF20h ≦ LA (h) ≦ 1FFF2Fh) PA (h) = LA (h) −CFF30 (h) ELSE IF (1FFF30h ≦ LA (h) ≦ 1FFF3Fh) PA (h) = LA (h) − BFF40 (h) ELSE IF (1FFF40h ≦ LA (h) ≦ 1FFF4Fh) PA (h) = LA (h) −AFF50 (h) ELSE IF (1FFF50h ≦ LA (h) ≦ 1FFF5Fh) PA (h) = LA (h) ) -9FF60 (h) ELSE IF (1FFF60h ≦ LA (h) ≦ 1FFF6Fh) PA (h) = LA (h) -8FF70 (h) ELSE IF (1FFF70h ≦ LA (h) ≦ 1FFF7Fh) PA (h) = LA (h) -7FF80 (h) ELSE IF (1FFF80h ≦ LA (h) ≦ 1FFF8Fh) PA ( h) = LA (h) -6FF90 (h) ELSE IF (1FFF90h ≦ LA (h) ≦ 1FFF9Fh) PA (h) = LA (h) −5FFA0 (h) ELSE IF (1FFFA0h ≦ LA (h) ≦ 1FFFAFh) PA (h) = LA (h) -4FFB0 (h) ELSE IF (1FFFB0h ≦ LA (h) ≦ 1FFFBFh) PA (h) = LA (h) -3FFC0 (h) ELSE IF (1FFFC0h ≦ LA (h) ≦ 1FFFCFh) PA (h) = LA (h) −2FFD0 (h) ELSE IF (1FFFD0h ≦ LA h) ≦ 1FFFDFh) PA (h) = LA (h) −1FFE0 (h) ELSE IF (1FFFE0h ≦ LA (h) ≦ 1FFFEFFh) PA (h) = LA (h) −FFF0 (h) ELSE IF (1FFFF0h ≦ LA (h) ≦ 1FFFFFh) PA (h) = LA (h)

【0024】一例を示すと、最初の は、論理アドレスLA(h)が000000hと00F
FEFhの間にあるときに、物理アドレスPA(h)は
論理アドレスLA(h)と同じ値であることを意味す
る。
As an example, the first Means that the logical address LA (h) is 000000h and 00F
When it is between FEFh, it means that the physical address PA (h) has the same value as the logical address LA (h).

【0025】同様に、 ELSE IF(00FFF0h≦LA(h)≦01FFDFh) PA(h)=LA(h)+10(h) は、論理アドレスLA(h)が00FFF0hと01F
FDFhの間にあるときに、物理アドレスPA(h)は
論理アドレスLA(h)に10(h)加算した値である
ことを意味する。以下、同様である。
Similarly, ELSE IF (00FFF0h ≦ LA (h) ≦ 01FFDFh) PA (h) = LA (h) +10 (h) is obtained when logical addresses LA (h) are 00FFF0h and 01FFF.
When it is between FDFh, it means that the physical address PA (h) is a value obtained by adding 10 (h) to the logical address LA (h). Hereinafter, the same applies.

【0026】次に、図2のアドレス変換装置18を、上
述したアドレス変換式を用いてワイヤードロジックで構
成し、フラッシュメモリ12の制御装置14とともにプ
ロセッサ10とI/Fをとる。本実施例のフラッシュメ
モリ12のブロック管理方法を説明すると、上述したよ
うに、最初に各ブロックのヘッダエリアの初期化(イニ
シャライズ)を行う。初期化の一例を示すと、次のよう
になる。
Next, the address translation device 18 of FIG. 2 is configured by wired logic using the above-described address translation formula, and takes an I / F with the processor 10 together with the control device 14 of the flash memory 12. The block management method of the flash memory 12 according to the present embodiment will be described. As described above, first, the header area of each block is initialized (initialized). An example of the initialization is as follows.

【0027】ブロック0のヘッダエリアでは、物理アド
レスPA[20:0]の「00FFFDh」から「00
FFFFh」にそれぞれ「00h」を書き込み、「00
FFF6h」から「00FFFBhに」現在の時刻をそ
れぞれ書き込む。次に、ブロック1のヘッダエリアで
は、物理アドレスPA[20:0]の「01FFFD
h」から「01FFFFh」にそれぞれ「00h」を書
き込み、「01FFF6h」から「01FFFBh」に
現在の時刻をそれぞれ書き込む。…………そして、昇順
ブロックxxhのヘッダエリアでは、物理アドレスPA
[20:0]の「xxFFFDh」から「xxFFFF
h」にそれぞれ「00h」を書き込み、「xxFFF6
h」から「xxFFFBh」に現在の時刻をそれぞれ書
き込む。…………最終ブロック1Fhのヘッダエリアで
は、物理アドレスPA[20:0]の「1FFFFD
h」から「1FFFFFh」にそれぞれ「00h」を書
き込み、「1FFFF6h」から「1FFFFBh」に
現在の時刻をそれぞれ書き込んで初期化を終了する。
In the header area of the block 0, the physical address PA [20: 0] is changed from "00FFFDh" to "00
Write "00h" to each of "FFFFh"
The current time is written from “FFF6h” to “00FFFBh”, respectively. Next, in the header area of block 1, "01FFFD" of the physical address PA [20: 0] is set.
"00h" is written to "01FFFFh" from "h", and the current time is written to "01FFFBh" from "01FFFF6h". ………… In the header area of the ascending block xxh, the physical address PA
“XxFFFFh” to “xxFFFF” in [20: 0]
h ”is written with“ 00h ”, and“ xxFFFF6
h ”to“ xxFFFBh ”respectively. ...... In the header area of the last block 1Fh, "1FFFFD" of the physical address PA [20: 0] is used.
h ”to“ 1FFFFFFh ”and“ 00h ”respectively, and“ 1FFFF6h ”to“ 1FFFFBh ”to write the current times respectively, thereby completing the initialization.

【0028】拡張記憶装置あるいは補助記憶装置として
フラッシュメモリを用いた本システムでは、データや実
行プログラムなどは追記する手法で新たに更新していく
ことになる。この手法自体は従来の手法と同様である。
しかし、データや実行プログラムの更新を繰り返す度
に、不要なメモリエリアが拡大していく。そこで、デー
タや実行プログラムの更新により不要となったデータ・
実行プログラムやメモリフラグメンテーションを削除す
るために、メモリデータの再配置(デフラグメンテーシ
ョン)を行い、不要なメモリエリアの縮小と再利用エリ
アの拡大を図るようにする。このとき、イレースするブ
ロックの候補として、上述したように書換回数の少ない
方のブロックを優先して消去する。もし、書換回数が同
じで2つ以上の候補があるときは、その候補の以前の消
去時刻の古いブロックを優先してイレースすることにす
る。この処理は、デフラグメンテーションプログラムに
より、プロセッサ10がフラッシュメモリ制御装置14
を介して行う。
In the present system using a flash memory as an extended storage device or an auxiliary storage device, data, execution programs, and the like are newly updated by a method of appending. This method itself is the same as the conventional method.
However, each time the data or the execution program is updated, an unnecessary memory area is expanded. Therefore, the data and the unnecessary
In order to delete the execution program and the memory fragmentation, the memory data is rearranged (defragmented) to reduce unnecessary memory areas and enlarge the reuse area. At this time, as described above, as a candidate for the block to be erased, the block with the smaller number of rewrites is preferentially erased. If the number of rewrites is the same and there are two or more candidates, the erase of the candidate with the oldest erase time is prioritized and erased. This processing is performed by the processor 10 by the defragmentation program.
Done through.

【0029】具体的には、優先的に選ばれたブロックの
ヘッダエリアに記憶されている書換回数「V」を他のメ
モリあるいはレジスタに記憶し、そして次に該当ブロッ
クをイレースするためのプログラム(イレースシーケン
スルーチン)の実行に移る。このプログラムが終了後、
そのブロックはイレースされたことになる。そして直ち
に、ヘッダエリアの更新を行う。すなわち、書換回数を
以前の回数に1インクリメントした値「V+1」として
新たに書き込み、更に現在の時刻を書き込む。この作業
の終了後、通常のデータなどの追記や読み出しができる
状態に戻す。
Specifically, the number of rewrites "V" stored in the header area of the preferentially selected block is stored in another memory or register, and then a program (erase) for erasing the corresponding block is performed. Move to execution of the erase sequence routine). After this program ends,
The block has been erased. Then, the header area is immediately updated. That is, the number of rewrites is newly written as a value “V + 1” obtained by incrementing the previous number by one, and the current time is further written. After this work is completed, the state is returned to a state where normal data and the like can be additionally written and read.

【0030】[0030]

【実施例2】この実施例2では、拡張記憶装置もしくは
補助記憶装置に使用するフラッシュメモリ12として、
1メガビット×16で合計32個の32キロワードのブ
ロックをもつものを搭載したシステム構成となってい
る。このフラッシュメモリは、図8に示すような物理ア
ドレスのメモリマップを持つ。前記実施例と同様に、各
ブロックは、OSプログラム又は制御プログラムが管理
するために、1ブロック毎に自己のヘッダエリアを持
つ。その内容であるブロックの消去回数や消去した時刻
などは、図9に示すような構造で8ワード分をとる。な
お、図9中に示すアドレスは、フラッシュメモリ12の
物理アドレスである。ブロックnのヘッダエリアに記憶
されている内容を参照して、OSプログラム又は制御プ
ログラムがブロックnのブロック消去や書き換えを管理
する。この管理方法は、前記実施例1と同様の手法で対
応できる。
Embodiment 2 In this embodiment 2, a flash memory 12 used for an extended storage device or an auxiliary storage device is
The system configuration is such that a 1 Mbit × 16 block having a total of 32 blocks of 32 kilowords is mounted. This flash memory has a memory map of physical addresses as shown in FIG. As in the above embodiment, each block has its own header area for each block to be managed by the OS program or control program. The contents, such as the number of times of erasure of the block and the erasure time, take eight words in a structure as shown in FIG. The addresses shown in FIG. 9 are physical addresses of the flash memory 12. With reference to the contents stored in the header area of the block n, the OS program or the control program manages block erasure and rewrite of the block n. This management method can be handled by the same method as in the first embodiment.

【0031】次に、各ブロックのヘッダエリアやプログ
ラム・データエリアのブロックが連続するように、アド
レス変換を行う。この論理アドレスから物理アドレスへ
のアドレス変換の計算式の一例を示すと、以下のように
なる。なお、数値n,数値N(h),物理アドレスの値
[PA(h)],PA[20:1],論理アドレスの値
[LA(h)],LA[20:1]は、前記実施例と同
様である。
Next, address conversion is performed so that the header area of each block and the blocks of the program data area are continuous. An example of a calculation formula for the address conversion from the logical address to the physical address is as follows. The numerical value n, numerical value N (h), physical address value [PA (h)], PA [20: 1], logical address value [LA (h)], LA [20: 1] are the same as those described above. Same as the example.

【0032】 IF(00000h≦LA(h)≦07FF7h) PA(h)=LA(h) ELSE IF(07FF8h≦LA(h)≦0FFEFh) PA(h)=LA(h)+8(h) ELSE IF(0FFF0h≦LA(h)≦17FE7h) PA(h)=LA(h)+10(h) ELSE IF(17FE8h≦LA(h)≦1FFDFh) PA(h)=LA(h)+18(h) ELSE IF(1FFE0h≦LA(h)≦27FD7h) PA(h)=LA(h)+20(h) ELSE IF(27FD8h≦LA(h)≦2FFCFh) PA(h)=LA(h)+28(h) ELSE IF(2FFD0h≦LA(h)≦37FC7h) PA(h)=LA(h)+30(h) ELSE IF(37FC8h≦LA(h)≦3FFBFh) PA(h)=LA(h)+38(h) ELSE IF(3FFC0h≦LA(h)≦47FB7h) PA(h)=LA(h)+40(h) ELSE IF(47FB8h≦LA(h)≦4FFAFh) PA(h)=LA(h)+48(h) ELSE IF(4FFB0h≦LA(h)≦57FA7h) PA(h)=LA(h)+50(h) ELSE IF(57FA8h≦LA(h)≦5FF9Fh) PA(h)=LA(h)+58(h) ELSE IF(5FFA0h≦LA(h)≦67F97h) PA(h)=LA(h)+60(h) ELSE IF(67F98h≦LA(h)≦6FF8Fh) PA(h)=LA(h)+68(h) ELSE IF(6FF90h≦LA(h)≦77F87h) PA(h)=LA(h)+70(h) ELSE IF(77F88h≦LA(h)≦7FF7Fh) PA(h)=LA(h)+78(h) ELSE IF(7FF80h≦LA(h)≦87F77h) PA(h)=LA(h)+80(h) ELSE IF(87F78h≦LA(h)≦8FF6Fh) PA(h)=LA(h)+88(h) ELSE IF(8FF70h≦LA(h)≦97F67h) PA(h)=LA(h)+90(h) ELSE IF(97F68h≦LA(h)≦9FF5Fh) PA(h)=LA(h)+98(h) ELSE IF(9FF60h≦LA(h)≦A7F57h) PA(h)=LA(h)+A0(h) ELSE IF(A7F58h≦LA(h)≦AFF4Fh) PA(h)=LA(h)+A8(h) ELSE IF(AFF50h≦LA(h)≦B7F47h) PA(h)=LA(h)+B0(h) ELSE IF(B7F48h≦LA(h)≦BFF3Fh) PA(h)=LA(h)+B8(h) ELSE IF(BFF40h≦LA(h)≦C7F37h) PA(h)=LA(h)+C0(h) ELSE IF(C7F38h≦LA(h)≦CFF2Fh) PA(h)=LA(h)+C8(h) ELSE IF(CFF30h≦LA(h)≦D7F27h) PA(h)=LA(h)+D0(h) ELSE IF(D7F28h≦LA(h)≦DFF1Fh) PA(h)=LA(h)+D8(h) ELSE IF(DFF20h≦LA(h)≦E7F17h) PA(h)=LA(h)+E0(h) ELSE IF(E7F18h≦LA(h)≦EFF0Fh) PA(h)=LA(h)+E8(h) ELSE IF(EFF10h≦LA(h)≦F7F07h) PA(h)=LA(h)+F0(h) ELSE IF(F7F08h≦LA(h)≦FFEFFh) PA(h)=LA(h)+F8(h) ELSE IF(FFF00h≦LA(h)≦FFF07h) PA(h)=LA(h)−F7F08h ELSE IF(FFF08h≦LA(h)≦FFF0Fh) PA(h)=LA(h)−EFF10h ELSE IF(FFF10h≦LA(h)≦FFF17h) PA(h)=LA(h)−E7F18h ELSE IF(FFF18h≦LA(h)≦FFF1Fh) PA(h)=LA(h)−DFF20h ELSE IF(FFF20h≦LA(h)≦FFF27h) PA(h)=LA(h)−D7F28h ELSE IF(FFF28h≦LA(h)≦FFF2Fh) PA(h)=LA(h)−CFF30h ELSE IF(FFF30h≦LA(h)≦FFF37h) PA(h)=LA(h)−C7F38h ELSE IF(FFF38h≦LA(h)≦FFF3Fh) PA(h)=LA(h)−BFF40h ELSE IF(FFF40h≦LA(h)≦FFF47h) PA(h)=LA(h)−B7F48h ELSE IF(FFF48h≦LA(h)≦FFF4Fh) PA(h)=LA(h)−AFF50h ELSE IF(FFF50h≦LA(h)≦FFF57h) PA(h)=LA(h)−A7F58h ELSE IF(FFF58h≦LA(h)≦FFF5Fh) PA(h)=LA(h)−9FF60h ELSE IF(FFF60h≦LA(h)≦FFF67h) PA(h)=LA(h)−97F68h ELSE IF(FFF68h≦LA(h)≦FFF6Fh) PA(h)=LA(h)−8FF70h ELSE IF(FFF70h≦LA(h)≦FFF77h) PA(h)=LA(h)−87F78h ELSE IF(FFF78h≦LA(h)≦FFF7Fh) PA(h)=LA(h)−7FF80h ELSE IF(FFF80h≦LA(h)≦FFF87h) PA(h)=LA(h)−77F88h ELSE IF(FFF88h≦LA(h)≦FFF8Fh) PA(h)=LA(h)−6FF90h ELSE IF(FFF90h≦LA(h)≦FFF97h) PA(h)=LA(h)−67F98h ELSE IF(FFF98h≦LA(h)≦FFF9Fh) PA(h)=LA(h)−5FFA0h ELSE IF(FFFA0h≦LA(h)≦FFFA7h) PA(h)=LA(h)−57FA8h ELSE IF(FFFA8h≦LA(h)≦FFFAFh) PA(h)=LA(h)−4FFB0h ELSE IF(FFFB0h≦LA(h)≦FFFB7h) PA(h)=LA(h)−47FB8h ELSE IF(FFFB8h≦LA(h)≦FFFBFh) PA(h)=LA(h)−3FFC0h ELSE IF(FFFC0h≦LA(h)≦FFFC7h) PA(h)=LA(h)−37FC8h ELSE IF(FFFC8h≦LA(h)≦FFFCFh) PA(h)=LA(h)−2FFD0h ELSE IF(FFFD0h≦LA(h)≦FFFD7h) PA(h)=LA(h)−27FD8h ELSE IF(FFFD8h≦LA(h)≦FFFDFh) PA(h)=LA(h)−1FFE0h ELSE IF(FFFE0h≦LA(h)≦FFFE7h) PA(h)=LA(h)−17FE8h ELSE IF(FFFE8h≦LA(h)≦FFFEFh) PA(h)=LA(h)−FFF0h ELSE IF(FFFF0h≦LA(h)≦FFFF7h) PA(h)=LA(h)−7FF8h ELSE IF(FFFF8h≦LA(h)≦FFFFFh) PA(h)=LA(h)IF (00000h ≦ LA (h) ≦ 07FF7h) PA (h) = LA (h) ELSE IF (07FF8h ≦ LA (h) ≦ 0FFEFh) PA (h) = LA (h) +8 (h) ELSE IF (0FFF0h ≦ LA (h) ≦ 17FE7h) PA (h) = LA (h) +10 (h) ELSE IF (17FE8h ≦ LA (h) ≦ 1FFDFh) PA (h) = LA (h) +18 (h) ELSE IF (1FFE0h ≦ LA (h) ≦ 27FD7h) PA (h) = LA (h) +20 (h) ELSE IF (27FD8h ≦ LA (h) ≦ 2FFCFh) PA (h) = LA (h) +28 (h) ELSE IF (2FFD0h ≦ LA (h) ≦ 37FC7h) PA (h) = LA (h) +30 (h) ELSE IF (37FC8h ≦ LA (h) ≦ 3FF BFh) PA (h) = LA (h) +38 (h) ELSE IF (3FFC0h ≦ LA (h) ≦ 47FB7h) PA (h) = LA (h) +40 (h) ELSE IF (47FB8h ≦ LA (h) ≦ 4FFAFh) PA (h) = LA (h) +48 (h) ELSE IF (4FFB0h ≦ LA (h) ≦ 57FA7h) PA (h) = LA (h) +50 (h) ELSE IF (57FA8h ≦ LA (h) ≦ 5FF9Fh) PA (h) = LA (h) +58 (h) ELSE IF (5FFA0h ≦ LA (h) ≦ 67F97h) PA (h) = LA (h) +60 (h) ELSE IF (67F98h ≦ LA (h) ≦ 6FF8Fh) PA (h) = LA (h) +68 (h) ELSE IF (6FF90h ≦ LA (h) ≦ 77F87h) PA (h) = LA (h) +70 (H) ELSE IF (77F88h ≦ LA (h) ≦ 7FF7Fh) PA (h) = LA (h) +78 (h) ELSE IF (7FF80h ≦ LA (h) ≦ 87F77h) PA (h) = LA (h) +80 (H) ELSE IF (87F78h ≦ LA (h) ≦ 8FF6Fh) PA (h) = LA (h) +88 (h) ELSE IF (8FF70h ≦ LA (h) ≦ 97F67h) PA (h) = LA (h) +90 (H) ELSE IF (97F68h ≦ LA (h) ≦ 9FF5Fh) PA (h) = LA (h) +98 (h) ELSE IF (9FF60h ≦ LA (h) ≦ A7F57h) PA (h) = LA (h) + A0 (H) ELSE IF (A7F58h ≦ LA (h) ≦ AFF4Fh) PA (h) = LA (h) + A8 (h) ELSE IF (AFF50h ≦ A (h) ≦ B7F47h) PA (h) = LA (h) + B0 (h) ELSE IF (B7F48h ≦ LA (h) ≦ BFF3Fh) PA (h) = LA (h) + B8 (h) ELSE IF (BFF40h ≦ LA (h) ≦ C7F37h) PA (h) = LA (h) + C0 (h) ELSE IF (C7F38h ≦ LA (h) ≦ CFF2Fh) PA (h) = LA (h) + C8 (h) ELSE IF (CFF30h ≦ LA (h) ≦ D7F27h) PA (h) = LA (h) + D0 (h) ELSE IF (D7F28h ≦ LA (h) ≦ DFF1Fh) PA (h) = LA (h) + D8 (h) ELSE IF (DFF20h ≦ LA (h) ≦ E7F17h) PA (h) = LA (h) + E0 (h) ELSE IF (E7F18h ≦ LA (h) ≦ EFF0Fh) PA (h) LA (h) + E8 (h) ELSE IF (EFF10h ≦ LA (h) ≦ F7F07h) PA (h) = LA (h) + F0 (h) ELSE IF (F7F08h ≦ LA (h) ≦ FFEFFh) PA (h) = LA (h) + F8 (h) ELSE IF (FFF00h ≦ LA (h) ≦ FFF07h) PA (h) = LA (h) −F7F08h ELSE IF (FFF08h ≦ LA (h) ≦ FFF0Fh) PA (h) = LA ( h) -EFF10h ELSE IF (FFF10h ≦ LA (h) ≦ FFF17h) PA (h) = LA (h) −E7F18h ELSE IF (FFF18h ≦ LA (h) ≦ FFF1Fh) PA (h) = LA (h) −DFF20h ELSE IF (FFF20h ≦ LA (h) ≦ FFF27h) PA (h) = LA (h) −D7F28h E SE IF (FFF28h ≦ LA (h) ≦ FFF2Fh) PA (h) = LA (h) −CFF30h ELSE IF (FFF30h ≦ LA (h) ≦ FFF37h) PA (h) = LA (h) −C7F38h ELSE IF (FFF38h) ≦ LA (h) ≦ FFF3Fh) PA (h) = LA (h) −BFF40h ELSE IF (FFF40h ≦ LA (h) ≦ FFF47h) PA (h) = LA (h) −B7F48h ELSE IF (FFF48h ≦ LA (h) ) ≦ FFF4Fh) PA (h) = LA (h) −AFF50h ELSE IF (FFF50h ≦ LA (h) ≦ FFF57h) PA (h) = LA (h) −A7F58h ELSE IF (FFF58h ≦ LA (h) ≦ FFF5Fh) PA (h) = LA (h) -9FF60h ELSE IF (FFF60 ≦ LA (h) ≦ FFF67h) PA (h) = LA (h) −97F68h ELSE IF (FFF68h ≦ LA (h) ≦ FFF6Fh) PA (h) = LA (h) −8FF70h ELSE IF (FFF70h ≦ LA (h) ) ≦ FFF77h) PA (h) = LA (h) −87F78h ELSE IF (FFF78h ≦ LA (h) ≦ FFF7Fh) PA (h) = LA (h) −7FF80h ELSE IF (FFF80h ≦ LA (h) ≦ FFF87h) PA (h) = LA (h) −77F88h ELSE IF (FFF88h ≦ LA (h) ≦ FFF8Fh) PA (h) = LA (h) −6FF90h ELSE IF (FFF90h ≦ LA (h) ≦ FFF97h) PA (h) = LA (h) -67F98h ELSE IF (FFF98h ≦ LA (h) ≦ FFF9 Fh) PA (h) = LA (h) -5FFA0h ELSE IF (FFFA0h ≦ LA (h) ≦ FFFA7h) PA (h) = LA (h) −57FA8h ELSE IF (FFFA8h ≦ LA (h) ≦ FFFAFh) PA ( h) = LA (h) −4FFB0h ELSE IF (FFFB0h ≦ LA (h) ≦ FFFB7h) PA (h) = LA (h) −47FB8h ELSE IF (FFFB8h ≦ LA (h) ≦ FFFFBFh) PA (h) = LA (H) -3FFC0h ELSE IF (FFFC0h ≦ LA (h) ≦ FFFC7h) PA (h) = LA (h) −37FC8h ELSE IF (FFFC8h ≦ LA (h) ≦ FFFCFh) PA (h) = LA (h) − 2FFD0h ELSE IF (FFFD0h ≦ LA (h) ≦ FFFD7h) PA (h) = LA (H) -27FD8h ELSE IF (FFFD8h ≦ LA (h) ≦ FFFDFh) PA (h) = LA (h) −1FFE0h ELSE IF (FFFE0h ≦ LA (h) ≦ FFFE7h) PA (h) = LA (h) − 17FE8h ELSE IF (FFFE8h ≦ LA (h) ≦ FFFFh) PA (h) = LA (h) −FFF0h ELSE IF (FFFF0h ≦ LA (h) ≦ FFFF7h) PA (h) = LA (h) −7FF8h ELSE IF ( FFFF8h ≦ LA (h) ≦ FFFFFh) PA (h) = LA (h)

【0033】次に、図2のアドレス変換装置18を、上
述したアドレス変換式を用いてワイヤードロジックで構
成し、フラッシュメモリ12の制御装置14とともにプ
ロセッサ10とI/Fをとる。このようにして、前記実
施例と同様に、ヘッダエリアにおける書換えの管理・制
御とプログラム・データエリアのブロック間を連続化す
るアドレスマップへの変換が可能となる。
Next, the address translation device 18 of FIG. 2 is configured by wired logic using the above-described address translation formula, and interfaces with the processor 10 together with the control device 14 of the flash memory 12. In this manner, similarly to the above-described embodiment, management and control of rewriting in the header area and conversion to an address map that makes blocks in the program / data area continuous can be performed.

【0034】[0034]

【他の実施例】この発明には数多くの実施の形態があ
り、以上の開示に基づいて多様に改変することが可能で
ある。例えば、次のようなものも含まれる。 (1)前記実施例1,2では、ハードロジックによってア
ドレス変換装置を実現したが、アドレス変換用のROM
を使用し、テーブル参照方式によって論理アドレスから
物理アドレスへのアドレス変換を行うようにしてもよ
い。すなわち、論理アドレスをROMのアドレス側に供
給し、物理アドレスをROMのデータ側から出力する。
ROMのチップイネーブルやアウトプットイネーブルは
アサートしたままにして、アドレスコントロールとす
る。このROMに、前記実施例で示したようなアドレス
変換式を展開したテーブルを記憶すればよい。
Other Embodiments There are many embodiments of the present invention, and various modifications can be made based on the above disclosure. For example, the following is also included. (1) In the first and second embodiments, the address translation device is realized by hardware logic.
And the address conversion from the logical address to the physical address may be performed by the table reference method. That is, the logical address is supplied to the address side of the ROM, and the physical address is output from the data side of the ROM.
Address control is performed while the chip enable and output enable of the ROM are kept asserted. In this ROM, a table obtained by expanding the address conversion formula as shown in the above embodiment may be stored.

【0035】(2)前記形態はフラッシュメモリに本発明
を適用したものであるが、他の類似するメモリがフラッ
シュメモリと同じ書込み,読出し機能を備えており、か
つ、書込前ブロック消去特性を有するメモリであれば、
同様に適用可能である。 (3)前記実施例は、バイト単位やワード(16ビットや
32ビット)単位による操作の場合であるが、他のデー
タ単位であっても、同様に適用可能である。
(2) In the above embodiment, the present invention is applied to a flash memory. However, another similar memory has the same write / read function as the flash memory, and has a pre-write block erase characteristic. If you have a memory that has
It is equally applicable. (3) The above embodiment is directed to a case of operation in units of bytes or words (16 bits or 32 bits). However, the present invention can be similarly applied to other data units.

【0036】[0036]

【発明の効果】以上説明したように、本発明によれば、
次のような効果がある。 (1)対応するヘッダエリアとプログラム・データエリア
が、メモリの同一ブロック内となるようにアドレス変換
を行うので、ブロックの書換回数を低減して、高速のア
クセスが可能となる。また、ヘッダエリア用のメモリを
必要とせず、コストの削減を可能にする。 (2)アドレス変換によって、プロセッサ側からみたとき
にプログラム・データエリアのブロックが連続するよう
になり、メモリ領域の無駄を省くとともに、主記憶装置
に実行プログラムをロードすることなく、拡張記憶装置
もしくは補助記憶装置上でプログラムの実行が可能とな
る。
As described above, according to the present invention,
The following effects are obtained. (1) Since address conversion is performed so that the corresponding header area and program / data area are in the same block of the memory, the number of times of rewriting of the block can be reduced and high-speed access can be performed. In addition, a memory for a header area is not required, and cost can be reduced. (2) By the address conversion, the blocks in the program / data area become continuous when viewed from the processor side, thereby reducing waste of the memory area, and without loading the execution program into the main storage device. The program can be executed on the auxiliary storage device.

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

【図1】本発明を利用したシステムの一例のブロック図
である。
FIG. 1 is a block diagram of an example of a system using the present invention.

【図2】本発明の一形態の主要部を示すブロック図であ
る。
FIG. 2 is a block diagram illustrating a main part of one embodiment of the present invention.

【図3】論理アドレスから物理アドレスにアドレス変換
するための、メモリマッピングの手法を示す概念図であ
る。
FIG. 3 is a conceptual diagram showing a memory mapping method for performing address conversion from a logical address to a physical address.

【図4】ブロック消去機能をもつ汎用のフラッシュメモ
リにおける物理アドレスのメモリマッピングと、ヘッダ
エリア及びプログラム・データエリアの関係を示す図で
ある。
FIG. 4 is a diagram showing a memory mapping of physical addresses in a general-purpose flash memory having a block erasing function, and a relationship between a header area and a program / data area.

【図5】フラッシュメモリの物理アドレスとプロセッサ
の論理アドレスの関係を示す図である。
FIG. 5 is a diagram showing a relationship between a physical address of a flash memory and a logical address of a processor.

【図6】実施例1におけるフラッシュメモリのメモリマ
ップを示す図である。
FIG. 6 is a diagram illustrating a memory map of a flash memory according to the first embodiment.

【図7】実施例1におけるフラッシュメモリのブロック
nにおける詳細な構造のメモリマップを示す図である。
FIG. 7 is a diagram showing a memory map of a detailed structure in a block n of the flash memory according to the first embodiment.

【図8】実施例2におけるフラッシュメモリのメモリマ
ップを示す図である。
FIG. 8 is a diagram illustrating a memory map of a flash memory according to a second embodiment.

【図9】実施例2におけるフラッシュメモリのブロック
nにおける詳細な構造のメモリマップを示す図である。
FIG. 9 is a diagram showing a memory map of a detailed structure in a block n of a flash memory according to a second embodiment.

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

10…プロセッサ 12…フラッシュメモリ 14…フラッシュメモリ制御装置 16…RAM 18…アドレス変換装置 DESCRIPTION OF SYMBOLS 10 ... Processor 12 ... Flash memory 14 ... Flash memory control device 16 ... RAM 18 ... Address conversion device

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】 ブロック単位で記憶内容を消去するフラ
ッシュ型メモリであって、 自己のブロックの管理情報を記憶する第1の領域と、主
情報を記憶する第2の領域とを、各ブロック毎に設けた
ことを特徴とするフラッシュ型メモリ。
1. A flash memory for erasing storage contents in units of blocks, wherein a first area for storing management information of its own block and a second area for storing main information are provided for each block. A flash-type memory provided in a flash memory.
【請求項2】 請求項1記載のフラッシュ型メモリを備
えた記憶装置であって、 隣接するブロックの第1の領域が、連続する論理アドレ
スとなるように物理アドレスと論理アドレスの変換を行
うアドレス変換手段を備えたことを特徴とする記憶装
置。
2. A storage device comprising the flash memory according to claim 1, wherein an address for performing conversion between a physical address and a logical address such that a first area of an adjacent block is a continuous logical address. A storage device comprising conversion means.
【請求項3】 請求項1記載のフラッシュ型メモリを備
えた記憶装置であって、 隣接するブロックの第2の領域が、連続する論理アドレ
スとなるように物理アドレスと論理アドレスの変換を行
うアドレス変換手段を備えたことを特徴とする請求項2
記載の記憶装置。
3. A storage device comprising the flash type memory according to claim 1, wherein an address for performing conversion between a physical address and a logical address such that a second area of an adjacent block is a continuous logical address. 3. The apparatus according to claim 2, further comprising a conversion unit.
A storage device as described.
【請求項4】 前記アドレス変換手段を、ワイヤードロ
ジックによって構成したことを特徴とする請求項3記載
の記憶装置。
4. The storage device according to claim 3, wherein said address conversion means is constituted by wired logic.
【請求項5】 前記アドレス変換手段を、変換用のテー
ブルを格納したROMによって構成したことを特徴とす
る請求項3記載の記憶装置。
5. The storage device according to claim 3, wherein said address translation means is constituted by a ROM storing a translation table.
【請求項6】 前記管理情報は、そのブロックの書込回
数と、そのブロックを消去した時刻を含むことを特徴と
する請求項2又は3記載の記憶装置。
6. The storage device according to claim 2, wherein the management information includes a number of times of writing of the block and a time at which the block is erased.
【請求項7】 ブロックをイレースする際に、書込回数
が同じであれば、ブロックの消去時刻が古い方を優先的
に選択する制御手段を備えたことを特徴とする請求項4
記載の記憶装置。
7. When erasing a block, if the number of times of writing is the same, there is provided control means for preferentially selecting a block having a longer erasing time.
A storage device as described.
【請求項8】 請求項3記載の記憶装置を備えたコンピ
ュータシステムであって、 前記フラッシュ型メモリ上で、前記第2の領域に記憶さ
れているプログラムを実行するプロセッサを含むことを
特徴とするコンピュータシステム。
8. A computer system provided with the storage device according to claim 3, further comprising a processor that executes a program stored in the second area on the flash memory. Computer system.
【請求項9】 ブロック単位で記憶内容を消去するフラ
ッシュ型メモリの管理方法であって、 自己のブロックの管理情報を記憶する第1の領域と、主
情報を記憶する第2の領域とを、各ブロック毎に設ける
ことを特徴とするフラッシュ型メモリの管理方法。
9. A flash memory management method for erasing storage contents in block units, comprising: a first area for storing management information of its own block; and a second area for storing main information. A flash type memory management method characterized by being provided for each block.
【請求項10】 隣接するブロックの第1の領域が連続
する論理アドレスとなるように、物理アドレスと論理ア
ドレスの変換を行うことを特徴とする請求項9記載のフ
ラッシュ型メモリの管理方法。
10. The flash memory management method according to claim 9, wherein the conversion between the physical address and the logical address is performed so that the first area of the adjacent block has a continuous logical address.
【請求項11】 隣接するブロックの第2の領域が連続
する論理アドレスとなるように、物理アドレスと論理ア
ドレスの変換を行うことを特徴とする請求項10記載の
フラッシュ型メモリの管理方法。
11. The flash memory management method according to claim 10, wherein the conversion between the physical address and the logical address is performed so that the second area of the adjacent block has a continuous logical address.
JP27052097A 1997-09-17 1997-09-17 Storage device with flash memory, flash memory management method Expired - Lifetime JP3552490B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27052097A JP3552490B2 (en) 1997-09-17 1997-09-17 Storage device with flash memory, flash memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27052097A JP3552490B2 (en) 1997-09-17 1997-09-17 Storage device with flash memory, flash memory management method

Publications (2)

Publication Number Publication Date
JPH1196779A true JPH1196779A (en) 1999-04-09
JP3552490B2 JP3552490B2 (en) 2004-08-11

Family

ID=17487377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27052097A Expired - Lifetime JP3552490B2 (en) 1997-09-17 1997-09-17 Storage device with flash memory, flash memory management method

Country Status (1)

Country Link
JP (1) JP3552490B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789158B2 (en) 2000-01-28 2004-09-07 Nec Electronics Corporation Method of rewriting program in a flash microcomputer
KR100484485B1 (en) * 2002-10-01 2005-04-20 한국전자통신연구원 Method for storing data in non-volatile memory and apparatus therefor
KR100742849B1 (en) * 1998-06-30 2007-07-25 소니 가부시끼 가이샤 Data storage, data processing system, data processing method and data processing apparatus
US7664906B2 (en) 2003-03-31 2010-02-16 Samsung Electronics Co., Ltd. Flash memory access apparatus and method
JP2010067284A (en) * 2009-12-25 2010-03-25 Toshiba Corp Control method of memory system
KR100978302B1 (en) 2008-04-24 2010-08-26 가부시끼가이샤 도시바 Memory system
US8015347B2 (en) 2007-12-28 2011-09-06 Kabushiki Kaisha Toshiba Memory system and control method thereof

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100742849B1 (en) * 1998-06-30 2007-07-25 소니 가부시끼 가이샤 Data storage, data processing system, data processing method and data processing apparatus
US6789158B2 (en) 2000-01-28 2004-09-07 Nec Electronics Corporation Method of rewriting program in a flash microcomputer
KR100484485B1 (en) * 2002-10-01 2005-04-20 한국전자통신연구원 Method for storing data in non-volatile memory and apparatus therefor
US7664906B2 (en) 2003-03-31 2010-02-16 Samsung Electronics Co., Ltd. Flash memory access apparatus and method
US11893237B2 (en) 2007-12-28 2024-02-06 Kioxia Corporation Memory system and control method thereof
US11287975B2 (en) 2007-12-28 2022-03-29 Kioxia Corporation Memory system and control method thereof
US8015347B2 (en) 2007-12-28 2011-09-06 Kabushiki Kaisha Toshiba Memory system and control method thereof
US8886868B2 (en) 2007-12-28 2014-11-11 Kabushiki Kaisha Toshiba Memory system and control method thereof
US9026724B2 (en) 2007-12-28 2015-05-05 Kabushiki Kaisha Toshiba Memory system and control method thereof
US9280292B2 (en) 2007-12-28 2016-03-08 Kabushiki Kaisha Toshiba Memory system and control method thereof
US9483192B2 (en) 2007-12-28 2016-11-01 Kabushiki Kaisha Toshiba Memory system and control method thereof
US9933941B2 (en) 2007-12-28 2018-04-03 Toshiba Memory Corporation Memory system and control method thereof
US10558360B2 (en) 2007-12-28 2020-02-11 Toshiba Memory Corporation Memory system and control method thereof
KR100978302B1 (en) 2008-04-24 2010-08-26 가부시끼가이샤 도시바 Memory system
US7949910B2 (en) 2008-04-24 2011-05-24 Kabushiki Kaisha Toshiba Memory system and control method thereof
US7958411B2 (en) 2008-04-24 2011-06-07 Kabushiki Kaisha Toshiba Memory system and control method thereof
JP2010067284A (en) * 2009-12-25 2010-03-25 Toshiba Corp Control method of memory system
JP4703764B2 (en) * 2009-12-25 2011-06-15 株式会社東芝 Memory system control method

Also Published As

Publication number Publication date
JP3552490B2 (en) 2004-08-11

Similar Documents

Publication Publication Date Title
US7227788B2 (en) Memory management device and memory device
KR100526879B1 (en) flash file system
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
US6134151A (en) Space management for managing high capacity nonvolatile memory
JP2669365B2 (en) Rewritable ROM file device
US6477616B1 (en) Storage device, storage system, memory management method, recording medium, and computer data signal
US5946714A (en) Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
US5717886A (en) Semiconductor disk device and memory management method
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
JPH08263361A (en) Flash memory card
JP2001521220A (en) Improved flash file system
GB2291990A (en) Flash-memory management system
WO2006093201A1 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
EP1228510A1 (en) Space management for managing high capacity nonvolatile memory
KR20040014971A (en) Non-volatile memory control method
KR19990029196A (en) Semiconductor Memory and Data Management Method
JPH11126488A (en) Method and device for storing and controlling data of external memory using plural flash memories
US20110040931A1 (en) Memory control method and device, memory access control method, computer program, and recording medium
KR100265266B1 (en) Microcomputer comprsing flash eeprom and method of erasing flash eeprom
KR100437609B1 (en) Method for address translation of semiconductor memory device and apparatus the same
US5363496A (en) Microprocessor incorporating cache memory with selective purge operation
JP3552490B2 (en) Storage device with flash memory, flash memory management method
JP2008134685A (en) Nonvolatile memory system and nonvolatile memory control method
JP3555456B2 (en) Flash memory management device
JPH07153284A (en) Non-volatile semiconductor memory and its control method

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040426

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

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

EXPY Cancellation because of completion of term