JP2006209625A - Memory controller, flash memory system and control method of flash memory - Google Patents

Memory controller, flash memory system and control method of flash memory Download PDF

Info

Publication number
JP2006209625A
JP2006209625A JP2005023345A JP2005023345A JP2006209625A JP 2006209625 A JP2006209625 A JP 2006209625A JP 2005023345 A JP2005023345 A JP 2005023345A JP 2005023345 A JP2005023345 A JP 2005023345A JP 2006209625 A JP2006209625 A JP 2006209625A
Authority
JP
Japan
Prior art keywords
instruction code
flash memory
operation instruction
code
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005023345A
Other languages
Japanese (ja)
Inventor
Takuma Mitsunaga
琢真 光永
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2005023345A priority Critical patent/JP2006209625A/en
Publication of JP2006209625A publication Critical patent/JP2006209625A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize a flash memory system for reducing the number of registers without going down the executing speed of the control operation of access to a flash memory. <P>SOLUTION: A memory controller for performing access control to a flash memory is provided with an ROM 26, and a plurality of sets of code sets where operation instruction codes showing control operations are summarized are stored in the ROM 26, and the code set is selected based on instruction information applied from a host system, and the operation instruction codes included in the selected code set are successively stored in a B register 23c, and successively transferred to an A register 23b. The operation corresponding to the operation instruction code transferred and stored in the A register 23b is executed by an instruction processing block 23a. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。   The present invention relates to a memory controller, a flash memory system, and a flash memory control method.

近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。   In recent years, flash memories have been widely adopted as semiconductor memories used in memory systems such as memory cards and silicon disks. A flash memory is a kind of nonvolatile memory. Data stored in the flash memory is required to be retained even when power is not supplied.

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”を示すデータが格納されている消去状態から、論理値“0”を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。   A NAND flash memory is a type of flash memory that is particularly frequently used in the above memory system. Each of the plurality of memory cells included in the NAND flash memory receives a logical value “0” from an erased state in which data indicating a logical value “1” is stored, independently of the other memory cells. It is possible to change to a writing state in which the indicated data is stored. In contrast, when changing from the written state to the erased state, each memory cell cannot change independently of the other memory cells. At this time, all of a predetermined number of memory cells called blocks are simultaneously erased. This batch erase operation is generally called “block erase”.

NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。   The writing process or the reading process for the NAND flash memory is performed in units of a predetermined number of memory cells called pages. A block which is a unit of erasure processing is composed of a plurality of pages.

NAND型フラッシュメモリにアクセスするときには、NAND型フラッシュメモリに対してコマンドやアドレス等の情報を所定の順序で与えなければならない。つまり、NAND型フラッシュメモリに対するアクセスでは、一連の制御動作が連続的に実行される。この一連の制御動作は、読出し処理や書込み処理等の処理の内容に応じて動作パターンが異なっている。   When accessing the NAND flash memory, information such as commands and addresses must be given to the NAND flash memory in a predetermined order. That is, in the access to the NAND flash memory, a series of control operations are continuously executed. This series of control operations has different operation patterns depending on the contents of processing such as reading processing and writing processing.

特許文献1では、レジスタ群に一連の制御動作を実行するための動作指示情報を格納し、レジスタ群に格納された動作指示情報に基づいて一連の制御動作を実行させている。従って、レジスタ群には、一連の制御動作に含まれる各動作を指示する情報が全て格納されている。
特開2002−278783号公報
In Patent Document 1, operation instruction information for executing a series of control operations is stored in a register group, and a series of control operations is executed based on the operation instruction information stored in the register group. Accordingly, the register group stores all the information for instructing each operation included in the series of control operations.
Japanese Patent Laid-Open No. 2002-278783

特許文献1では、一連の制御動作に含まれる各動作を指示する情報を全てレジスタ群に格納しているため、多数のレジスタによってレジスタ群を構成しなければならない。一方、レジスタの数を少なくするために、一連の制御動作に含まれる各動作が実行される毎に、次の動作を指示する情報をレジスタに設定した場合には、一連の制御動作の実行速度が低下する。つまり、多数のレジスタによってレジスタ群を構成した場合には、実行速度は速いがコスト高になり、レジスタの数を少なくした場合には、コストを下げることができるが実行速度が低下する。   In Patent Document 1, since all information instructing each operation included in a series of control operations is stored in a register group, the register group must be composed of a large number of registers. On the other hand, in order to reduce the number of registers, when each operation included in a series of control operations is executed, if the information indicating the next operation is set in the register, the execution speed of the series of control operations Decreases. That is, when a register group is composed of a large number of registers, the execution speed is high but the cost is high. When the number of registers is reduced, the cost can be reduced but the execution speed is reduced.

そこで、本発明は、一連の制御動作の実行速度を低下させることなく、一連の制御動作に含まれる各動作を指示する情報を格納するレジスタの数を少なくすることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。   Therefore, the present invention provides a memory controller and a memory controller that can reduce the number of registers that store information indicating each operation included in a series of control operations without reducing the execution speed of the series of control operations. An object of the present invention is to provide a flash memory system and a flash memory control method.

上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段と、
前記指示情報に応答して前記記憶手段に記憶されている前記コードセットを選択する選択手段と、
前記選択手段によって選択された前記コードセットに含まれる前記動作命令コードを読出す命令コード読出し手段と、
前記命令コード読出し手段によって読出された前記動作命令コードを保持する命令コード保持手段と、
前記命令コード保持手段が保持する前記動作命令コードに基づいて動作する実行手段とを備え、
前記命令コード保持手段は、第1の命令コード保持部と第2の命令コード保持部とを有し、
前記命令コード読出し手段によって読出された前記動作命令コードは、前記第1の命令コード保持部に保持された後、前記第2の命令コード保持部に転送され、前記実行手段は前記第2の命令コード保持部に保持されている前記動作命令コードに基づいて前記動作を実行することを特徴とする。
In order to achieve the above object, a memory controller according to the first aspect of the present invention provides:
A memory controller that controls access to a flash memory in accordance with instruction information given from a host system,
Storage means for storing a plurality of sets of code sets each including operation instruction codes indicating the operation of the control;
Selecting means for selecting the code set stored in the storage means in response to the instruction information;
Instruction code reading means for reading the operation instruction code included in the code set selected by the selection means;
Instruction code holding means for holding the operation instruction code read by the instruction code reading means;
An execution means that operates based on the operation instruction code held by the instruction code holding means,
The instruction code holding means has a first instruction code holding part and a second instruction code holding part,
The operation instruction code read by the instruction code reading unit is held in the first instruction code holding unit and then transferred to the second instruction code holding unit, and the execution unit executes the second instruction code. The operation is executed based on the operation instruction code held in the code holding unit.

このような構成を採用したことにより、動作命令コードが纏められたコードセットが記憶手段に記憶されている。ホストシステムからの指示情報に応じてコードセットが選択手段で選択され、そのコードセットに含まれる動作命令コードが、第1の命令コード保持手段に保持され、第2の命令コード保持手段に転送される。第2の命令コード保持手段に保持された動作命令コードに基づく動作が実行手段により実行される。   By adopting such a configuration, a code set in which operation instruction codes are collected is stored in the storage means. A code set is selected by the selecting means in accordance with the instruction information from the host system, and the operation instruction code included in the code set is held in the first instruction code holding means and transferred to the second instruction code holding means. The An operation based on the operation instruction code held in the second instruction code holding means is executed by the execution means.

尚、前記命令コード読出し手段が、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出してもよい。   The instruction code reading means may read the operation instruction code included in the code set in accordance with the execution order of the operation instruction code.

また、前記命令コード保持手段が前記実行手段からの要求に応答して、前記第1の命令コード保持部に保持されている前記動作命令コードを前記第2の命令コード保持部に転送してもよい。   The instruction code holding unit may transfer the operation instruction code held in the first instruction code holding unit to the second instruction code holding unit in response to a request from the execution unit. Good.

また、前記第1の命令コード保持部に保持されている前記動作命令コードが前記第2の命令コード保持部に転送されたことに応答して、前記コードセットに含まれる前記動作命令コードが前記命令コード読出し手段によって読出され、その読出された動作命令コードが前記第1の命令コード保持部に保持されてもよい。   Further, in response to the operation instruction code held in the first instruction code holding unit being transferred to the second instruction code holding unit, the operation instruction code included in the code set is It may be read by the instruction code reading means, and the read operation instruction code may be held in the first instruction code holding unit.

上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、本発明第1の観点に係るメモリコントローラとフラッシュメモリを備えることを特徴とする。   In order to achieve the above object, a flash memory system according to a second aspect of the present invention includes a memory controller and a flash memory according to the first aspect of the present invention.

上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段から、前記指示情報に対応するコードセットを選択する選択処理と、
前記選択処理によって選択されたコードセットに含まれる前記動作命令コードを読出す読出し処理と、
前記読出し処理によって読出された動作命令コードを、第1の命令コード保持部に保持する取込処理と、
前記第1の命令コード保持部に保持されている前記動作命令コードを、第2の命令コード保持部に転送する転送処理と、
前記第2の命令コード保持部に保持されている前記動作命令コードに基づいた動作を実行することにより前記制御を行う実行処理と、
を含むことを特徴とする。
In order to achieve the above object, a flash memory control method according to a third aspect of the present invention includes:
A flash memory control method for controlling access to a flash memory in accordance with instruction information given from a host system,
A selection process for selecting a code set corresponding to the instruction information from a storage unit storing a plurality of code sets each of which is a collection of operation instruction codes indicating the control operations;
A read process for reading the operation instruction code included in the code set selected by the selection process;
A fetch process for holding the operation instruction code read by the read process in a first instruction code holding unit;
A transfer process for transferring the operation instruction code held in the first instruction code holding unit to a second instruction code holding unit;
An execution process for performing the control by executing an operation based on the operation instruction code held in the second instruction code holding unit;
It is characterized by including.

尚、前記読出し処理は、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出してもよい。   In the reading process, the operation instruction code included in the code set may be read according to the execution order of the operation instruction code.

また、前記実行処理が次の前記動作命令コードに基づいた制御に移行するのに応答して、前記転送処理が実行されてもよい。   Further, the transfer process may be executed in response to the execution process shifting to the control based on the next operation instruction code.

また、前記転送処理が実行されたことに応答して、前記読出し処理と前記取込処理が実行されてもよい。   Further, the read process and the capture process may be executed in response to the transfer process being executed.

本発明によれば、フラッシュメモリシステム内で実行される一連の制御動作の実行速度を低下させることなく、一連の制御動作に含まれる各動作を指示する情報を格納するレジスタの数を少なくすることができる。   According to the present invention, the number of registers for storing information indicating each operation included in a series of control operations can be reduced without reducing the execution speed of the series of control operations executed in the flash memory system. Can do.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステムを概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム10は、フラッシュメモリ11と、それを制御するメモリコントローラ20とで構成されている。このフラッシュメモリシステム10は、通常、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理機器のホストシステム30に内蔵される。
以下に、フラッシュメモリ11及びメモリコントローラ20の詳細と、フラッシュメモリシステム10の動作とを説明する。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram schematically showing a flash memory system according to an embodiment of the present invention.
As shown in FIG. 1, the flash memory system 10 includes a flash memory 11 and a memory controller 20 that controls the flash memory 11. The flash memory system 10 is usually built in a host system 30 of various information processing devices such as a personal computer and a digital still camera that process various information such as characters, sounds, and image information.
The details of the flash memory 11 and the memory controller 20 and the operation of the flash memory system 10 will be described below.

[フラッシュメモリ11の説明]
このフラッシュメモリシステム10において、データが記憶されるフラッシュメモリ11は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
[Description of flash memory 11]
In the flash memory system 10, a flash memory 11 in which data is stored is composed of a NAND flash memory. The NAND flash memory is a non-volatile memory developed for use as a storage device (as an alternative to a hard disk). This NAND flash memory cannot perform random access, and writing and reading are performed in units of pages and erasing is performed in units of blocks. Since data cannot be overwritten, when data is written, data is written into the erased area.

NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。   Since the NAND flash memory has such characteristics, normally, when data is rewritten, new data (data after rewriting) is written to the erased block that has been erased, and old data is written. A process of erasing a block in which (data before rewriting) has been written is performed.

このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム30側から与えられる論理アドレスと、フラッシュメモリ11内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ11にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ11に対するアクセスが行なわれる。   When such data is rewritten, the data after rewriting is written in a block different from that before rewriting, so the logical address given from the host system 30 side and the physical address in the flash memory 11 The correspondence between and changes dynamically every time data is rewritten. Accordingly, when accessing the flash memory 11, an address conversion table showing the correspondence between logical addresses and physical addresses is usually created, and the flash memory 11 is accessed using this address conversion table.

図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ11の仕様によって異なるが、一般的なフラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
FIG. 2 is an explanatory diagram showing the relationship between blocks and pages.
The configuration of the block and page differs depending on the specifications of the flash memory 11, but in a general flash memory, as shown in FIG. 2A, one block is configured with 32 pages (P0 to P31), A page is composed of a user area of 512 bytes and a redundant area of 16 bytes. As the storage capacity increases, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area and a 64-byte redundant area. What is being provided is also provided.

ここで、ユーザー領域は、主に、ホストシステム30から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。   Here, the user area is mainly an area where data supplied from the host system 30 is stored, and the redundant area is stored with additional data such as error correction code, corresponding logical address information and block status. Area. The error correction code is additional data for detecting and correcting an error included in the data stored in the user area, and is generated by an ECC block described later.

対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。   The corresponding logical address information is written when data is stored in a physical block, and indicates information related to the logical address of the data stored in the physical block. If no data is stored in the physical block, the corresponding logical address information is not written, so whether the corresponding logical address information is written or not is the erased block. Can be judged. That is, if the corresponding logical block address is not written, it is determined that the block is an erased block.

ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。   The block status is a flag indicating whether or not the physical block is a bad block (a physical block in which data cannot be normally written). When the physical block is determined to be a bad block, Is set with a flag indicating that it is a bad block.

次に、フラッシュメモリ11の回路構成について説明する。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
Next, the circuit configuration of the flash memory 11 will be described.
A general NAND flash memory includes a register for holding write data or read data and a memory cell array for storing data. The memory cell array includes a plurality of memory cell groups in which a plurality of memory cells are connected in series, and a specific memory cell in the memory cell group is selected by a word line. Data copying (copying from register to memory cell or copying from memory cell to register) is performed between the memory cell selected by the word line and the register.

メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。   A memory cell constituting the memory cell array is composed of a MOS transistor having two gates. Here, the upper gate is called a control gate, and the lower gate is called a floating gate. By injecting charges (electrons) into the floating gate and discharging charges (electrons) from the floating gate, Data is written or erased.

フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値"0"のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値"1"のデータに対応する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When injecting electrons into the floating gate, a high voltage is applied so that the control gate is at the high potential side. When electrons are injected from the floating gate, a high voltage at which the control gate is at the low potential side is applied. Applied to discharge electrons. The state in which electrons are injected into the floating gate (write state) corresponds to data having a logical value “0”, and the state in which electrons are discharged from the floating gate (erased state) has a logical value “1”. Corresponds to data.

[メモリコントローラ20の説明]
メモリコントローラ20は、ホストインターフェースブロック21と、マイクロプロセッサ22と、フラッシュメモリインターフェースブロック23と、ECC(エラー・コレクション・コード)ブロック24と、バッファ25と、ROM(Read Only Memory)26と、SRAM(Static Random Access Memory)27で構成されている。これら機能ブロックによって構成されるメモリコントローラ20は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
[Description of Memory Controller 20]
The memory controller 20 includes a host interface block 21, a microprocessor 22, a flash memory interface block 23, an ECC (Error Collection Code) block 24, a buffer 25, a ROM (Read Only Memory) 26, an SRAM ( Static Random Access Memory) 27. The memory controller 20 constituted by these functional blocks is integrated on one semiconductor chip. Hereinafter, the function of each functional block will be described.

ホストインターフェースブロック21は、フラッシュメモリシステム10を、ホストシステム30に接続するためのブロックである。ホストインターフェースブロック21には、ホストシステム30側から供給される論理アドレス、セクタ数及び外部コマンド(ホストシステム30からフラッシュメモリシステム10に与えられるコマンド)等を保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタが設けられている。   The host interface block 21 is a block for connecting the flash memory system 10 to the host system 30. The host interface block 21 includes a register for holding a logical address, a sector number, an external command (a command given to the flash memory system 10 from the host system 30), and the like supplied from the host system 30 side, or an error occurs. An error register to be set is provided.

マイクロプロセッサ22は、メモリコントローラ20を構成する各機能ブロック全体の、動作を制御する機能ブロックである。又、論理アドレス(フラッシュメモリシステム10に対して与えられるアドレス)と物理アドレス(フラッシュメモリ11内のアドレス)の対応関係を示す変換テーブルは、マイクロプロセッサ22の制御の下、SRAM27上に作成される。   The microprocessor 22 is a functional block that controls the operation of the entire functional blocks constituting the memory controller 20. Also, a conversion table showing the correspondence between logical addresses (addresses given to the flash memory system 10) and physical addresses (addresses in the flash memory 11) is created on the SRAM 27 under the control of the microprocessor 22. .

バッファ25は、フラッシュメモリ11に書き込むデータ又はフラッシュメモリ11から読出したデータを一時的に保持するブロックであり、FIFO(First In First Out)型のバッファで構成されている。フラッシュメモリ11に書き込むデータは、ホストインターフェースブロック21を介してバッファ25に供給され、フラッシュメモリ11から読出したデータは、ホストインターフェースブロック21を介してホストシステム30側に出力される。   The buffer 25 is a block that temporarily holds data to be written to the flash memory 11 or data read from the flash memory 11, and is configured by a FIFO (First In First Out) type buffer. Data to be written to the flash memory 11 is supplied to the buffer 25 via the host interface block 21, and data read from the flash memory 11 is output to the host system 30 side via the host interface block 21.

フラッシュメモリインターフェースブロック23は、バッファ25からフラッシュメモリ11への書込み処理やフラッシュメモリ11からバッファ25への読出し処理を制御するブロックである。書込み処理や読出し処理を実行するときの一連の制御動作は、ROM26に記憶されている一連の制御動作を指示する情報に基づいて実行される。この一連の制御動作に含まれる各制御動作を指示する情報を、以下、動作命令コードという。動作命令コードは、フラッシュメモリインターフェースブロック23内のレジスタに読出され、レジスタに読出された動作命令コードに従って制御動作が実行される。   The flash memory interface block 23 is a block that controls writing processing from the buffer 25 to the flash memory 11 and reading processing from the flash memory 11 to the buffer 25. A series of control operations when executing the writing process and the reading process are executed based on information instructing a series of control operations stored in the ROM 26. Information indicating each control operation included in the series of control operations is hereinafter referred to as an operation instruction code. The operation instruction code is read into a register in the flash memory interface block 23, and a control operation is executed according to the operation instruction code read into the register.

図3は、フラッシュメモリインターフェースブロック23の構成とSRAM27とROM26を示す構成図である。
フラッシュメモリインターフェースブロック23は、命令処理ブロック23a、Aレジスタ(A−REG)23b、Bレジスタ(B−REG)23c、レジスタ制御ブロック23d、アドレスレジスタ23e及び付加情報レジスタ23fによって構成されている。
FIG. 3 is a configuration diagram showing the configuration of the flash memory interface block 23 and the SRAM 27 and ROM 26.
The flash memory interface block 23 includes an instruction processing block 23a, an A register (A-REG) 23b, a B register (B-REG) 23c, a register control block 23d, an address register 23e, and an additional information register 23f.

命令処理ブロック23aは、動作命令コードに従った動作を実行するブロックである。Aレジスタ23b及びBレジスタ23cは、命令処理ブロック23aに与える動作命令コードを保持するレジスタである。レジスタ制御ブロック23dは、Aレジスタ23b及びBレジスタ23cの動作を制御するブロックである。アドレスレジスタ23eは、フラッシュメモリ11に与える物理アドレス(フラッシュメモリ11内のブロックドレス又はページアドレス)を保持するレジスタである。付加情報レジスタ23fは、フラッシュメモリ11の冗長領域に書き込まれる情報を保持するレジスタである。   The instruction processing block 23a is a block that executes an operation according to the operation instruction code. The A register 23b and the B register 23c are registers that hold operation instruction codes to be given to the instruction processing block 23a. The register control block 23d is a block that controls the operation of the A register 23b and the B register 23c. The address register 23e is a register that holds a physical address (block address or page address in the flash memory 11) to be given to the flash memory 11. The additional information register 23 f is a register that holds information written in the redundant area of the flash memory 11.

ECCブロック24は、フラッシュメモリ11に書き込むデータに付加されるエラーコレクションコードを生成するブロックである。このエラーコレクションコードは、通常、フラッシュメモリの冗長領域に書込まれる。フラッシュメモリ11からデータを読出すときは、データと共に読出されるエラーコレクションコードに基づいて、読出したデータに含まれる誤りの検出と訂正が、ECCブロック24によって行われる。   The ECC block 24 is a block that generates an error correction code added to data to be written in the flash memory 11. This error correction code is normally written in a redundant area of the flash memory. When data is read from the flash memory 11, the ECC block 24 detects and corrects errors contained in the read data based on the error correction code read together with the data.

SRAM27は、作業領域として使用される記憶領域を備え、上記変換テーブルのようなフラッシュメモリ11にアクセスするときに必要な情報は、SRAM27上で管理される。   The SRAM 27 includes a storage area used as a work area, and information necessary for accessing the flash memory 11 such as the conversion table is managed on the SRAM 27.

ROM26には、マイクロプロセッサ22によって実行されるプログラムや各種の設定情報が記憶されている。又、上述の一連の制御動作を指示する情報は、複数の動作命令コードを含むコードセットとしてROM26に記憶されている。   The ROM 26 stores programs executed by the microprocessor 22 and various setting information. Information for instructing the above-described series of control operations is stored in the ROM 26 as a code set including a plurality of operation instruction codes.

[フラッシュメモリシステム10の動作の説明]
メモリコントローラ20は、ホストシステム30側から与えられる論理アドレス、セクタ数及び外部コマンド(ホストシステム30からフラッシュメモリシステム10に与えられるコマンド)等に基づいて、フラッシュメモリ11に対するアクセスを制御する。
[Description of Operation of Flash Memory System 10]
The memory controller 20 controls access to the flash memory 11 based on a logical address, a sector number, an external command (a command given from the host system 30 to the flash memory system 10), and the like given from the host system 30 side.

ホストシステム30側から与えられる論理アドレス、セクタ数及び外部コマンド等は、ホストインターフェースブロック21内のレジスタに保持される。ホストシステム30側から与えられる書込みデータは、ホストインターフェースブロック21の制御により、バッファ25に保持される。フラッシュメモリ11から読出されてバッファ25に保持された読出しデータは、ホストインターフェースブロック21の制御のもと、ホストシステム30側に転送される。   A logical address, the number of sectors, an external command, and the like given from the host system 30 side are held in a register in the host interface block 21. Write data given from the host system 30 side is held in the buffer 25 under the control of the host interface block 21. Read data read from the flash memory 11 and held in the buffer 25 is transferred to the host system 30 side under the control of the host interface block 21.

次に、メモリコントローラ20によって実行されるフラッシュメモリ11に対するアクセス制御について説明する。
フラッシュメモリ11に対するアクセス制御は、マイクロプロセッサ22の制御のもと、フラッシュメモリインターフェースブロック23によって実行される。
Next, access control to the flash memory 11 executed by the memory controller 20 will be described.
Access control to the flash memory 11 is executed by the flash memory interface block 23 under the control of the microprocessor 22.

フラッシュメモリインターフェースブロック23によって実行される一連の制御動作は、ROM26に記憶されているコードセットに含まれる動作命令コードに従って実行される。コードセットは一連の制御動作に含まれる各制御動作に対応する動作命令コードを含んでいる。フラッシュメモリ11に対するアクセス制御では、マイクロプロセッサ22が、ホストインターフェースブロック21内のレジスタに保持されている外部コマンド等に基づいて、ROM26に記憶されている複数のコードセットからフラッシュメモリインターフェースブロック23に与えるコードセットを選択する。   A series of control operations executed by the flash memory interface block 23 are executed according to operation instruction codes included in a code set stored in the ROM 26. The code set includes operation instruction codes corresponding to each control operation included in the series of control operations. In the access control to the flash memory 11, the microprocessor 22 gives the flash memory interface block 23 from a plurality of code sets stored in the ROM 26 based on an external command or the like held in a register in the host interface block 21. Select a code set.

図4は、コードセットに含まれる動作命令コードが読出される過程を示した模式図であり、図3及び図4を参照して、マイクロプロセッサ22によって選択されたコードセットに含まれる動作命令コードが命令処理ブロック23aに与えられるまでの流れを説明する。   FIG. 4 is a schematic diagram showing the process of reading the operation instruction code included in the code set. Referring to FIGS. 3 and 4, the operation instruction code included in the code set selected by the microprocessor 22 is shown. Will be described until the instruction processing block 23a is given.

ROM26に記憶されている複数のコードセットからマイクロプロセッサ22によって選択されたコードセットは、ROM26からSRAM27に読出される。
例えば、コードセット0(CS0)が選択された場合、コードセット0(CS0)に含まれる動作命令コードがROM26からSRAM27に読出される。コードセット0(CS0)が、動作命令コード0(C0)、動作命令コード1(C1)、動作命令コード2(C2)、動作命令コード3(C3)、動作命令コード4(C4)及び動作命令コード5(C5)の6つの動作命令コードで構成されていた場合、レジスタ制御ブロック23dの制御のもと、これらの動作命令コードがSRAM27からフラッシュメモリインターフェースブロック23のBレジスタ23cに読込まれる。Bレジスタ23cに読込まれた動作命令コードは、Aレジスタ23bに転送され、Aレジスタ23bに保持される。命令処理ブロック23aは、Aレジスタ23bに保持されている動作命令コードを読込み、動作命令コードに従った動作を実行する。
A code set selected by the microprocessor 22 from a plurality of code sets stored in the ROM 26 is read from the ROM 26 to the SRAM 27.
For example, when the code set 0 (CS0) is selected, the operation instruction code included in the code set 0 (CS0) is read from the ROM 26 to the SRAM 27. Code set 0 (CS0) is an operation instruction code 0 (C0), an operation instruction code 1 (C1), an operation instruction code 2 (C2), an operation instruction code 3 (C3), an operation instruction code 4 (C4), and an operation instruction If the operation instruction code is composed of code 5 (C5), these operation instruction codes are read from the SRAM 27 to the B register 23c of the flash memory interface block 23 under the control of the register control block 23d. The operation instruction code read into the B register 23c is transferred to the A register 23b and held in the A register 23b. The instruction processing block 23a reads the operation instruction code held in the A register 23b and executes an operation according to the operation instruction code.

図5は、Bレジスタ23cからAレジスタ23bへの動作命令コードの転送と一連の制御動作を説明するための図である。図5を参照して、図4に示したコードセット0(CS0)に含まれる動作命令コードがBレジスタ23cに読込まれ、Aレジスタ23bに転送される流れを説明する。   FIG. 5 is a diagram for explaining the transfer of the operation instruction code from the B register 23c to the A register 23b and a series of control operations. With reference to FIG. 5, the flow in which the operation instruction code included in the code set 0 (CS0) shown in FIG. 4 is read into the B register 23c and transferred to the A register 23b will be described.

Bレジスタ23cへの動作命令コードの読込み、Bレジスタ23cからAレジスタ23bへの動作命令コードの転送は、レジスタ制御ブロック23dによって制御されている。
コードセット0(CS0)に含まれる最初の動作命令コード0(C0)は、Bレジスタ23cに読込まれ、命令処理ブロック23aから出力される次の動作命令コードを要求する信号に応答してAレジスタ23bへ転送される。命令処理ブロック23aは、Aレジスタ23bに保持された動作命令コード0(C0)を読込み、動作命令コード0(C0)に対応した動作を実行する。レジスタ制御ブロック23dは、動作命令コード0(C0)をBレジスタ23cからAレジスタ23bへ転送した後、次の動作命令コードである動作命令コード1(C1)をBレジスタ23cに読込む。
Reading of the operation instruction code to the B register 23c and transfer of the operation instruction code from the B register 23c to the A register 23b are controlled by the register control block 23d.
The first operation instruction code 0 (C0) included in the code set 0 (CS0) is read into the B register 23c, and in response to a signal requesting the next operation instruction code output from the instruction processing block 23a, the A register 23b. The instruction processing block 23a reads the operation instruction code 0 (C0) held in the A register 23b, and executes an operation corresponding to the operation instruction code 0 (C0). The register control block 23d transfers the operation instruction code 0 (C0) from the B register 23c to the A register 23b, and then reads the operation instruction code 1 (C1), which is the next operation instruction code, into the B register 23c.

Bレジスタ23cに読込まれた動作命令コード1(C1)は、命令処理ブロック23aから出力される次の動作命令コードを要求する信号に応答してAレジスタ23bへ転送される。命令処理ブロック23aは、Aレジスタ23bに保持された動作命令コード1(C1)を読込み、動作命令コード1(C1)に対応した動作を実行する。レジスタ制御ブロック23dは、動作命令コード1(C1)をBレジスタ23cからAレジスタ23bへ転送した後、次の動作命令コードである動作命令コード2(C2)をBレジスタ23cに読込む。   The operation instruction code 1 (C1) read into the B register 23c is transferred to the A register 23b in response to a signal requesting the next operation instruction code output from the instruction processing block 23a. The instruction processing block 23a reads the operation instruction code 1 (C1) held in the A register 23b, and executes an operation corresponding to the operation instruction code 1 (C1). The register control block 23d transfers the operation instruction code 1 (C1) from the B register 23c to the A register 23b, and then reads the operation instruction code 2 (C2), which is the next operation instruction code, into the B register 23c.

以下同様に、レジスタ制御ブロック23dは、命令処理ブロック23aから出力される次の動作命令コードを要求する信号に応答して、Bレジスタ23cに保持されている動作命令コードをAレジスタ23bに転送する。Bレジスタ23cに保持されている動作命令コードをAレジスタ23bに転送した後、次の動作命令コードがBレジスタ23cに読込まれる。このようにしてAレジスタ23bに保持された動作命令コードが、命令処理ブロック23aによって読込まれ、動作命令コード0(C0)、動作命令コード1(C1)、動作命令コード2(C2)、動作命令コード3(C3)、動作命令コード4(C4)及び動作命令コード5(C5)に対応する動作が、順次実行される。   Similarly, the register control block 23d transfers the operation instruction code held in the B register 23c to the A register 23b in response to a signal requesting the next operation instruction code output from the instruction processing block 23a. . After the operation instruction code held in the B register 23c is transferred to the A register 23b, the next operation instruction code is read into the B register 23c. The operation instruction code thus held in the A register 23b is read by the instruction processing block 23a, and the operation instruction code 0 (C0), operation instruction code 1 (C1), operation instruction code 2 (C2), operation instruction Operations corresponding to the code 3 (C3), the operation instruction code 4 (C4), and the operation instruction code 5 (C5) are sequentially executed.

上述のようにして、コードセットに含まれる動作命令コードをBレジスタ23cに順次読出し、Bレジスタ23cに読出した動作命令コードをAレジスタ23bに転送するようにすれば、Aレジスタ23b及びBレジスタ23cだけで命令処理ブロック23aに対して遅延なく動作命令コードを与えることができる。   As described above, if the operation instruction code included in the code set is sequentially read to the B register 23c and the operation instruction code read to the B register 23c is transferred to the A register 23b, the A register 23b and the B register 23c The operation instruction code can be given to the instruction processing block 23a without delay.

尚、上記動作命令コードには、フラッシュメモリ11に対して制御信号、コマンド、アドレス又は書込みデータ等を出力することを指示するものや、分岐条件に基づいた分岐先を指示するものや、フラッシュメモリ11のビジー状態が解除されるのを待つことを指示するもの等がある。又、コードセットに含まれる動作命令コードは、通常は記述されている順番に読出されるが、分岐先を指示する動作命令コードが含まれている場合は、レジスタ制御ブロック23dが、分岐先を指示する動作命令コードに従って次に読出す動作命令コードを決定する。従って、分岐先を指示する動作命令コードが含まれている場合は、分岐条件に基づいて分岐先の動作命令コードが読出される。   The operation instruction code includes an instruction to output a control signal, a command, an address, write data, or the like to the flash memory 11, an instruction to instruct a branch destination based on a branch condition, or a flash memory. 11 for instructing to wait until the 11 busy state is released. The operation instruction codes included in the code set are normally read in the order in which they are described. If an operation instruction code indicating a branch destination is included, the register control block 23d determines the branch destination. The operation instruction code to be read out next is determined in accordance with the instructed operation instruction code. Therefore, when an operation instruction code that indicates a branch destination is included, the branch operation instruction code is read based on the branch condition.

例えば、書込み処理に対応するコードセットが選択された場合、コードセットには、フラッシュメモリ11の書込みプロテクトを解除することを指示する動作命令コード、フラッシュメモリ11に対して書込みコマンドを出力することを指示する動作命令コード、フラッシュメモリ11に対してアドレスを出力することを指示する動作命令コード、フラッシュメモリ11に対してバッファ25に保持されているデータを転送することを指示する動作命令コード、フラッシュメモリ11に対して付加情報レジスタ23fに保持されているデータを転送することを指示する動作命令コード、フラッシュメモリ11内の送受信バッファに保持されているデータをセルアレイに複写する書込み実行コマンドを出力することを指示する動作命令コード等が、含まれている。   For example, when a code set corresponding to the writing process is selected, the code set includes an operation instruction code for instructing to release the write protection of the flash memory 11 and a write command to the flash memory 11. An operation instruction code to instruct, an operation instruction code to instruct to output an address to the flash memory 11, an operation instruction code to instruct to transfer data held in the buffer 25 to the flash memory 11, and a flash An operation instruction code for instructing the memory 11 to transfer the data held in the additional information register 23f and a write execution command for copying the data held in the transmission / reception buffer in the flash memory 11 to the cell array are output. Operation instruction code etc. , It is included.

フラッシュメモリ11の書込みプロテクトを解除することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、書込みプロテクトを解除する制御信号を出力する。この書込みプロテクトを解除する制御信号を出力することにより、フラッシュメモリ11に対する書込みが可能になる。   When the operation instruction code instructing to release the write protection of the flash memory 11 is read, the instruction processing block 23a outputs a control signal for releasing the write protection. By outputting a control signal for canceling the write protection, writing to the flash memory 11 becomes possible.

フラッシュメモリ11に対して書込みコマンドを出力することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、コマンドラッチイネーブル等の制御信号と共に書込みコマンドを出力する。出力された書込みコマンドは、フラッシュメモリ11にコマンドとして受信される。   When an operation instruction code instructing to output a write command to the flash memory 11 is read, the instruction processing block 23a outputs a write command together with a control signal such as command latch enable. The output write command is received by the flash memory 11 as a command.

フラッシュメモリ11に対してアドレスを出力することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、アドレスラッチイネーブル等の制御信号と共にアドレスを出力する。出力されたアドレスは、フラッシュメモリ11に書込み先を指示するアドレスとして受信される。   When the operation instruction code for instructing the flash memory 11 to output an address is read, the instruction processing block 23a outputs the address together with a control signal such as an address latch enable. The output address is received as an address for instructing the flash memory 11 to write to.

フラッシュメモリ11に対してバッファ25に保持されているデータを転送することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、データライトイネーブル等の制御信号と共にバッファ25に保持されているデータを出力する。バッファ25から出力されたデータは、フラッシュメモリ11内の送受信バッファに保持される。   When the operation instruction code for instructing the flash memory 11 to transfer the data held in the buffer 25 is read, the instruction processing block 23a is held in the buffer 25 together with a control signal such as data write enable. Output data. Data output from the buffer 25 is held in a transmission / reception buffer in the flash memory 11.

フラッシュメモリ11に対して付加情報レジスタ23fに保持されているデータを転送することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、データライトイネーブル等の制御信号と共に付加情報レジスタ23fに保持されているデータを出力する。付加情報レジスタ23fから出力されたデータは、フラッシュメモリ11内の送受信バッファに保持される。   When the operation instruction code for instructing the flash memory 11 to transfer the data held in the additional information register 23f is read, the instruction processing block 23a, together with a control signal such as data write enable, outputs the additional information register 23f. The data held in is output. The data output from the additional information register 23 f is held in a transmission / reception buffer in the flash memory 11.

フラッシュメモリ11内の送受信バッファに保持されているデータをセルアレイに複写する書込み実行コマンドを出力することを指示する動作命令コードが読込まれると、命令処理ブロック23aは、コマンドラッチイネーブル等の制御信号と共に書込み実行コマンドを出力する。出力された書込み実行コマンドは、フラッシュメモリ11にコマンドとして受信され、フラッシュメモリ11は送受信バッファに保持されているデータをセルアレイに複写する。   When an operation instruction code instructing to output a write execution command for copying the data held in the transmission / reception buffer in the flash memory 11 to the cell array is read, the instruction processing block 23a receives a control signal such as command latch enable. A write execution command is also output. The output write execution command is received as a command by the flash memory 11, and the flash memory 11 copies the data held in the transmission / reception buffer to the cell array.

本発明の実施形態に係るフラッシュメモリシステムのブロック図である。1 is a block diagram of a flash memory system according to an embodiment of the present invention. ブロックとページの関係を示す説明図である。It is explanatory drawing which shows the relationship between a block and a page. フラッシュメモリインターフェースブロックの構成とSRAMとROMを示すブロック図である。It is a block diagram which shows the structure of a flash memory interface block, SRAM, and ROM. コードセットに含まれる動作命令コードが読出される過程を示した模式図である。It is the model which showed the process in which the operation command code contained in a code set is read. BレジスタからAレジスタへの動作命令コードの転送と一連の制御動作を説明するための図である。It is a figure for demonstrating transfer of the operation instruction code from B register to A register, and a series of control operation.

符号の説明Explanation of symbols

10 フラッシュメモリシステム
11 フラッシュメモリ
20 メモリコントローラ
21 ホストインターフェースブロック
22 マイクロプロセッサ
23 フラッシュメモリインターフェースブロック
23a 命令処理ブロック
23b Aレジスタ
23c Bレジスタ
23d レジスタ制御ブロック
23e アドレスレジスタ
23f 付加情報レジスタ
24 ECCブロック
25 バッファ
26 ROM
27 SRAM
30 ホストシステム
DESCRIPTION OF SYMBOLS 10 Flash memory system 11 Flash memory 20 Memory controller 21 Host interface block 22 Microprocessor 23 Flash memory interface block 23a Instruction processing block 23b A register 23c B register 23d Register control block 23e Address register 23f Additional information register 24 ECC block 25 Buffer 26 ROM
27 SRAM
30 Host system

Claims (9)

ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段と、
前記指示情報に応答して前記記憶手段に記憶されている前記コードセットを選択する選択手段と、
前記選択手段によって選択された前記コードセットに含まれる前記動作命令コードを読出す命令コード読出し手段と、
前記命令コード読出し手段によって読出された前記動作命令コードを保持する命令コード保持手段と、
前記命令コード保持手段が保持する前記動作命令コードに基づいて動作する実行手段とを備え、
前記命令コード保持手段は、第1の命令コード保持部と第2の命令コード保持部とを有し、
前記命令コード読出し手段によって読出された前記動作命令コードは、前記第1の命令コード保持部に保持された後、前記第2の命令コード保持部に転送され、前記実行手段は前記第2の命令コード保持部に保持されている前記動作命令コードに基づいて前記動作を実行することを特徴とするメモリコントローラ。
A memory controller that controls access to a flash memory in accordance with instruction information given from a host system,
Storage means for storing a plurality of sets of code sets each including operation instruction codes indicating the operation of the control;
Selecting means for selecting the code set stored in the storage means in response to the instruction information;
Instruction code reading means for reading the operation instruction code included in the code set selected by the selection means;
Instruction code holding means for holding the operation instruction code read by the instruction code reading means;
An execution means that operates based on the operation instruction code held by the instruction code holding means,
The instruction code holding means has a first instruction code holding part and a second instruction code holding part,
The operation instruction code read by the instruction code reading unit is held in the first instruction code holding unit and then transferred to the second instruction code holding unit, and the execution unit executes the second instruction code. A memory controller that executes the operation based on the operation instruction code held in a code holding unit.
前記命令コード読出し手段が、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出すことを特徴とする請求項1に記載のメモリコントローラ。   2. The memory controller according to claim 1, wherein the instruction code reading unit reads the operation instruction code included in the code set in accordance with an execution order of the operation instruction code. 前記命令コード保持手段が前記実行手段からの要求に応答して、前記第1の命令コード保持部に保持されている前記動作命令コードを前記第2の命令コード保持部に転送することを特徴とする請求項1又は2に記載のメモリコントローラ。   The instruction code holding means transfers the operation instruction code held in the first instruction code holding section to the second instruction code holding section in response to a request from the execution means. The memory controller according to claim 1 or 2. 前記第1の命令コード保持部に保持されている前記動作命令コードが前記第2の命令コード保持部に転送されたことに応答して、前記コードセットに含まれる前記動作命令コードが前記命令コード読出し手段によって読出され、その読出された動作命令コードが前記第1の命令コード保持部に保持されることを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。   In response to transfer of the operation instruction code held in the first instruction code holding unit to the second instruction code holding unit, the operation instruction code included in the code set is changed to the instruction code. 4. The memory controller according to claim 1, wherein the memory instruction is read by the reading means and the read operation instruction code is held in the first instruction code holding unit. 請求項1乃至4のいずれか1項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。   A flash memory system comprising the memory controller according to any one of claims 1 to 4 and a flash memory. ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段から、前記指示情報に対応するコードセットを選択する選択処理と、
前記選択処理によって選択されたコードセットに含まれる前記動作命令コードを読出す読出し処理と、
前記読出し処理によって読出された動作命令コードを、第1の命令コード保持部に保持する取込処理と、
前記第1の命令コード保持部に保持されている前記動作命令コードを、第2の命令コード保持部に転送する転送処理と、
前記第2の命令コード保持部に保持されている前記動作命令コードに基づいた動作を実行することにより前記制御を行う実行処理と、
を含むことを特徴とするフラッシュメモリの制御方法。
A flash memory control method for controlling access to a flash memory in accordance with instruction information given from a host system,
A selection process for selecting a code set corresponding to the instruction information from a storage unit storing a plurality of code sets each of which is a collection of operation instruction codes indicating the control operations;
A read process for reading the operation instruction code included in the code set selected by the selection process;
A fetch process for holding the operation instruction code read by the read process in a first instruction code holding unit;
A transfer process for transferring the operation instruction code held in the first instruction code holding unit to a second instruction code holding unit;
An execution process for performing the control by executing an operation based on the operation instruction code held in the second instruction code holding unit;
A method for controlling a flash memory, comprising:
前記読出し処理は、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出すことを特徴とする請求項6に記載のフラッシュメモリの制御方法。   7. The flash memory control method according to claim 6, wherein the reading process reads the operation instruction code included in the code set in accordance with an execution order of the operation instruction code. 前記実行処理が次の前記動作命令コードに基づいた制御に移行するのに応答して、前記転送処理が実行されることを特徴とする請求項6又は7に記載のフラッシュメモリの制御方法。   8. The flash memory control method according to claim 6, wherein the transfer process is executed in response to the execution process shifting to control based on the next operation instruction code. 前記転送処理が実行されたことに応答して、前記読出し処理と前記取込処理が実行されることを特徴とする請求項6乃至8のいずれか1項に記載のフラッシュメモリの制御方法。
9. The flash memory control method according to claim 6, wherein the read process and the capture process are executed in response to execution of the transfer process.
JP2005023345A 2005-01-31 2005-01-31 Memory controller, flash memory system and control method of flash memory Pending JP2006209625A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005023345A JP2006209625A (en) 2005-01-31 2005-01-31 Memory controller, flash memory system and control method of flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005023345A JP2006209625A (en) 2005-01-31 2005-01-31 Memory controller, flash memory system and control method of flash memory

Publications (1)

Publication Number Publication Date
JP2006209625A true JP2006209625A (en) 2006-08-10

Family

ID=36966389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005023345A Pending JP2006209625A (en) 2005-01-31 2005-01-31 Memory controller, flash memory system and control method of flash memory

Country Status (1)

Country Link
JP (1) JP2006209625A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101569228B1 (en) * 2008-05-06 2015-11-13 켐트라 코포레이션 Polyalphaolefins and processes for forming polyalphaolefins

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101569228B1 (en) * 2008-05-06 2015-11-13 켐트라 코포레이션 Polyalphaolefins and processes for forming polyalphaolefins

Similar Documents

Publication Publication Date Title
KR100626393B1 (en) Non-volatile memory device and multi-page copyback method thereof
JP4373943B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177360B2 (en) Memory controller, flash memory system, and flash memory control method
JP4254932B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP2006338083A (en) Memory controller
JP4177292B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD
JP4655034B2 (en) Memory controller, flash memory system, and flash memory control method
JP2005292925A (en) Memory controller, flash memory system, and control method for flash memory
JP4273106B2 (en) Memory controller, flash memory system, and flash memory control method
JP2006209625A (en) Memory controller, flash memory system and control method of flash memory
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4670370B2 (en) Memory controller and flash memory system
JP4194518B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP2008097339A (en) Memory controller, flash memory system having memory controller, and control method of flash memory
JP3934659B1 (en) Memory controller and flash memory system
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
JP4661748B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2006178909A (en) Memory controller, flash memory system and method for controlling flash memory
JP4273038B2 (en) Memory controller, flash memory system, and flash memory data transfer method
JP4366283B2 (en) Memory controller and flash memory system including the memory controller
JP2005293177A (en) Memory controller and flash memory system
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4561110B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

A131 Notification of reasons for refusal

Effective date: 20090303

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090707