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 PDFInfo
- 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
Links
Images
Abstract
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では、レジスタ群に一連の制御動作を実行するための動作指示情報を格納し、レジスタ群に格納された動作指示情報に基づいて一連の制御動作を実行させている。従って、レジスタ群には、一連の制御動作に含まれる各動作を指示する情報が全て格納されている。
特許文献1では、一連の制御動作に含まれる各動作を指示する情報を全てレジスタ群に格納しているため、多数のレジスタによってレジスタ群を構成しなければならない。一方、レジスタの数を少なくするために、一連の制御動作に含まれる各動作が実行される毎に、次の動作を指示する情報をレジスタに設定した場合には、一連の制御動作の実行速度が低下する。つまり、多数のレジスタによってレジスタ群を構成した場合には、実行速度は速いがコスト高になり、レジスタの数を少なくした場合には、コストを下げることができるが実行速度が低下する。
In
そこで、本発明は、一連の制御動作の実行速度を低下させることなく、一連の制御動作に含まれる各動作を指示する情報を格納するレジスタの数を少なくすることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。 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
The details of the flash memory 11 and the
[フラッシュメモリ11の説明]
このフラッシュメモリシステム10において、データが記憶されるフラッシュメモリ11は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
[Description of flash memory 11]
In the
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
図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
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。 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
ホストインターフェースブロック21は、フラッシュメモリシステム10を、ホストシステム30に接続するためのブロックである。ホストインターフェースブロック21には、ホストシステム30側から供給される論理アドレス、セクタ数及び外部コマンド(ホストシステム30からフラッシュメモリシステム10に与えられるコマンド)等を保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタが設けられている。
The
マイクロプロセッサ22は、メモリコントローラ20を構成する各機能ブロック全体の、動作を制御する機能ブロックである。又、論理アドレス(フラッシュメモリシステム10に対して与えられるアドレス)と物理アドレス(フラッシュメモリ11内のアドレス)の対応関係を示す変換テーブルは、マイクロプロセッサ22の制御の下、SRAM27上に作成される。
The
バッファ25は、フラッシュメモリ11に書き込むデータ又はフラッシュメモリ11から読出したデータを一時的に保持するブロックであり、FIFO(First In First Out)型のバッファで構成されている。フラッシュメモリ11に書き込むデータは、ホストインターフェースブロック21を介してバッファ25に供給され、フラッシュメモリ11から読出したデータは、ホストインターフェースブロック21を介してホストシステム30側に出力される。
The
フラッシュメモリインターフェースブロック23は、バッファ25からフラッシュメモリ11への書込み処理やフラッシュメモリ11からバッファ25への読出し処理を制御するブロックである。書込み処理や読出し処理を実行するときの一連の制御動作は、ROM26に記憶されている一連の制御動作を指示する情報に基づいて実行される。この一連の制御動作に含まれる各制御動作を指示する情報を、以下、動作命令コードという。動作命令コードは、フラッシュメモリインターフェースブロック23内のレジスタに読出され、レジスタに読出された動作命令コードに従って制御動作が実行される。
The flash
図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
The flash
命令処理ブロック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
SRAM27は、作業領域として使用される記憶領域を備え、上記変換テーブルのようなフラッシュメモリ11にアクセスするときに必要な情報は、SRAM27上で管理される。
The
ROM26には、マイクロプロセッサ22によって実行されるプログラムや各種の設定情報が記憶されている。又、上述の一連の制御動作を指示する情報は、複数の動作命令コードを含むコードセットとしてROM26に記憶されている。
The
[フラッシュメモリシステム10の動作の説明]
メモリコントローラ20は、ホストシステム30側から与えられる論理アドレス、セクタ数及び外部コマンド(ホストシステム30からフラッシュメモリシステム10に与えられるコマンド)等に基づいて、フラッシュメモリ11に対するアクセスを制御する。
[Description of Operation of Flash Memory System 10]
The
ホストシステム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
次に、メモリコントローラ20によって実行されるフラッシュメモリ11に対するアクセス制御について説明する。
フラッシュメモリ11に対するアクセス制御は、マイクロプロセッサ22の制御のもと、フラッシュメモリインターフェースブロック23によって実行される。
Next, access control to the flash memory 11 executed by the
Access control to the flash memory 11 is executed by the flash
フラッシュメモリインターフェースブロック23によって実行される一連の制御動作は、ROM26に記憶されているコードセットに含まれる動作命令コードに従って実行される。コードセットは一連の制御動作に含まれる各制御動作に対応する動作命令コードを含んでいる。フラッシュメモリ11に対するアクセス制御では、マイクロプロセッサ22が、ホストインターフェースブロック21内のレジスタに保持されている外部コマンド等に基づいて、ROM26に記憶されている複数のコードセットからフラッシュメモリインターフェースブロック23に与えるコードセットを選択する。
A series of control operations executed by the flash
図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
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
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
図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
フラッシュメモリ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
フラッシュメモリ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.
10 フラッシュメモリシステム
11 フラッシュメモリ
20 メモリコントローラ
21 ホストインターフェースブロック
22 マイクロプロセッサ
23 フラッシュメモリインターフェースブロック
23a 命令処理ブロック
23b Aレジスタ
23c Bレジスタ
23d レジスタ制御ブロック
23e アドレスレジスタ
23f 付加情報レジスタ
24 ECCブロック
25 バッファ
26 ROM
27 SRAM
30 ホストシステム
DESCRIPTION OF
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の命令コード保持部に保持する取込処理と、
前記第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:
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101569228B1 (en) * | 2008-05-06 | 2015-11-13 | 켐트라 코포레이션 | Polyalphaolefins and processes for forming polyalphaolefins |
-
2005
- 2005-01-31 JP JP2005023345A patent/JP2006209625A/en active Pending
Cited By (1)
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 |