JP4661748B2 - MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD - Google Patents
MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Download PDFInfo
- Publication number
- JP4661748B2 JP4661748B2 JP2006256937A JP2006256937A JP4661748B2 JP 4661748 B2 JP4661748 B2 JP 4661748B2 JP 2006256937 A JP2006256937 A JP 2006256937A JP 2006256937 A JP2006256937 A JP 2006256937A JP 4661748 B2 JP4661748 B2 JP 4661748B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- flash memory
- logical
- block
- code
- 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.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。 The present invention relates to a memory controller, a flash memory system including the memory controller, 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.
上記のメモリシステムで特に多く用いられるフラッシュメモリに、NAND型フラッシュメモリがある。NAND型フラッシュメモリでは、各メモリセルを他のメモリセルとは独立して、論理値"1"に対応する消去状態から、論理値"0"に対応する書込状態へと変化させることができる。これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルを他のメモリセルと独立して変化させることができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、"ブロック消去"と称されている。NAND型フラッシュメモリに対する書き込み処理または読み出し処理は、ページと称される予め定められた数のメモリセル単位で処理が実行されている。消去処理の単位であるブロックは、複数のページで構成されている。 Among flash memories that are particularly frequently used in the above memory system, there is a NAND flash memory. In the NAND flash memory, each memory cell can be changed from an erased state corresponding to a logical value “1” to a written state corresponding to a logical value “0” independently of other memory cells. . In contrast, when changing from the written state to the erased state, each memory cell cannot be changed 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”. The writing process or the reading process for the NAND flash memory is executed in units of a predetermined number of memory cells called pages. A block which is a unit of erasing processing is composed of a plurality of pages.
上記のような構成を有するNAND型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書き換えを行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書き換え後のデータ)を書き込み、古いデータ(書き換え前のデータ)が書き込まれていたブロックを消去するという処理を行わなければならない。 In the NAND flash memory having the above-described configuration, data cannot be overwritten. Therefore, when data is rewritten, new data (data after rewriting) is erased in a block erased block. ) And erase the block in which the old data (data before rewriting) has been written.
このようなデータの書き換えを行った場合、書き換え後のデータは、書き換え前のデータと異なるブロックに書き込まれる。従って、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスとの対応関係は、データを書き換えるごとに動的に変化する。このため、フラッシュメモリにアクセスする場合には、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。 When such data rewriting is performed, the rewritten data is written in a different block from the data before rewriting. Accordingly, the correspondence between the logical block address given from the host system side and the physical block address in the flash memory dynamically changes every time data is rewritten. Therefore, when accessing the flash memory, an address conversion table showing the correspondence between the logical block address and the physical block address is required.
つまり、フラッシュメモリにアクセスするときは、論理ブロックアドレスを物理ブロックアドレスに変換するアドレス処理や消去済みブロックを検索する空きブロック検索を行わなければならない。 That is, when accessing the flash memory, it is necessary to perform address processing for converting a logical block address to a physical block address and free block search for searching for an erased block.
このアドレス変換処理にかかる時間によってアクセス速度が低下するのを回避するため、特許文献1では、フラッシュメモリのアクセス対象が複数の論理ブロックに跨っている場合、論理ブロックごとのグループに分割して、それぞれのグループでフラッシュメモリに対するアクセスとアクセス先の物理アドレスを求めるアドレス変換処理を並列して実行していた。これにより、特許文献1はフラッシュメモリにアクセスするときの処理効率を向上させていた。
In order to avoid a decrease in the access speed due to the time required for this address conversion process, in
上記のようにフラッシュメモリに対するアクセスとアクセス先の物理アドレスを求めるアドレス変換処理を並行して実行する場合、メモリコントローラ内のフラッシュメモリシーケンスブロックがフラッシュメモリに対するアクセスを実行し、メモリコントローラ内のマイクロプロセッサが、アドレス変換処理を実行していた。しかしながら、特許文献1では、フラッシュメモリシーケンスブロックのアクセス状況を、マイクロプロセッサが把握することが困難であった。又、フラッシュメモリシーケンスブロックが動作を開始した後、マイクロプロセッサが、その動作を中止させることが困難であった。
When the access to the flash memory and the address conversion process for obtaining the physical address of the access destination are executed in parallel as described above, the flash memory sequence block in the memory controller executes the access to the flash memory, and the microprocessor in the memory controller However, the address conversion process was executed. However, in
したがって、フラッシュメモリシステムに与えられる電圧が急激に低下した時に、書き込みを中止することができなく、書き込みが途中で終了しフラッシュメモリ内のデータが異常になってしまうという課題があった。 Therefore, when the voltage applied to the flash memory system suddenly drops, it is impossible to stop writing, and there is a problem that the writing ends and the data in the flash memory becomes abnormal.
そこで、本発明は、フラッシュメモリに対するアクセスとアドレス変換処理を並列に実行させることにより、フラッシュメモリにアクセスするときの処理効率を向上させ、さらにフラッシュメモリシステムに与えられる電圧が低下した場合でも、フラッシュメモリのデータが異常になるのを防ぐことができるメモリコントローラ、フラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。 Therefore, the present invention improves the processing efficiency when accessing the flash memory by executing the access to the flash memory and the address conversion process in parallel, and even if the voltage applied to the flash memory system is reduced, It is an object of the present invention to provide a memory controller, a flash memory system, and a flash memory control method capable of preventing memory data from becoming abnormal.
上記目的を達成するため、本発明のメモリコントローラは、ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するメモリコントローラであって、前記フラッシュメモリに対するアクセスを制御するために実行される制御動作を指示する動作命令コードを複数個含むコードセットを複数組記憶しているコードセット記憶手段と、前記コードセット記憶手段に記憶されている前記動作命令コードのアドレスを保持するアドレス保持手段と、前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスを前記アドレス保持手段に設定するコードセット選択手段と、前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行手段と、前記制御動作実行手段が前記動作命令コードに基づいた制御動作を実行する毎に、前記アドレス保持手段に設定されているアドレスを、次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新手段と、を備えることを特徴とする。 In order to achieve the above object, a memory controller of the present invention is a memory controller that controls access to a flash memory that executes erasure of stored data in units of blocks in accordance with instruction information given from a host system. Code set storage means storing a plurality of sets of code sets including a plurality of operation instruction codes for instructing control operations to be executed to control access to the memory, and the operations stored in the code set storage means Address holding means for holding an address of an instruction code, and when the instruction information is given, the code set corresponding to an external command included in the instruction information is selected, and the operation instruction code included in the code set Code set for setting the address of the address in the address holding means Selection means, control operation execution means for reading the operation instruction code from the code set storage means in accordance with the address set in the address holding means, and executing a control operation based on the operation instruction code, and execution of the control operation Address update for changing the address set in the address holding means to the address of the operation instruction code corresponding to the next control operation to be executed each time the means executes a control operation based on the operation instruction code And means.
このように、前記制御動作実行手段が前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて動作するようにしたので、前記アドレス保持手段に設定されているアドレスを参照することにより、前記制御動作実行手段の動作状況、つまり、前記フラッシュメモリに対するアクセス状況を容易に把握できる。従って、前記制御動作実行手段の制御動作を停止させるような場合は、前記アドレス保持手段に設定されているアドレスに基づいて、制御動作を停止させるタイミングを決めることができる。 Thus, the control operation execution means reads the operation instruction code from the code set storage means according to the address set in the address holding means, and operates based on the read operation instruction code. By referring to the address set in the address holding unit, the operation status of the control operation executing unit, that is, the access status to the flash memory can be easily grasped. Therefore, when stopping the control operation of the control operation executing means, the timing for stopping the control operation can be determined based on the address set in the address holding means.
又、本発明のメモリコントローラは、前記制御動作実行手段が前記コードセットに基づいた一連の制御動作を実行しているときに、前記アドレス保持手段に設定されているアドレスを変更することにより前記一連の制御動作を終了させる強制終了手段を備えることが好ましい。 The memory controller of the present invention may change the address set in the address holding unit when the control operation executing unit executes a series of control operations based on the code set. It is preferable to provide forcible termination means for terminating the control operation.
つまり、前記制御動作実行手段が前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて動作するようにしたので、前記アドレス保持手段に設定されているアドレスを変更することにより、前記制御動作実行手段の動作を容易に制御することができる。 That is, the control operation execution means reads the operation instruction code from the code set storage means according to the address set in the address holding means, and operates based on the read operation instruction code. By changing the address set in the holding means, the operation of the control operation executing means can be easily controlled.
又、本発明のメモリコントローラは、前記指示情報に基づいて特定されるアクセス対象領域に対応する前記フラッシュメモリ内のブロックの物理ブロックアドレスを求めるアドレス変換手段を備えることが好ましい。 The memory controller according to the present invention preferably includes address conversion means for obtaining a physical block address of the block in the flash memory corresponding to the access target area specified based on the instruction information.
上記目的を達成するため、本発明のフラッシュメモリシステムは、前記メモリコントローラとフラッシュメモリを備えることを特徴とする。 In order to achieve the above object, a flash memory system of the present invention includes the memory controller and a flash memory.
上記目的を達成するため、本発明のフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するために、予め記憶手段に記憶されている複数個の動作命令コード含むコードセットに基づいて一連の制御動作を実行するフラッシュメモリの制御方法であって、前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスをアドレス保持手段に設定するコードセット選択ステップと、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行ステップと、前記制御動作実行ステップで前記動作命令コードに基づいた制御動作が実行される毎に、前記アドレス保持手段に設定されているアドレスを次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新ステップと、を含むことを特徴とする。 In order to achieve the above object, a flash memory control method according to the present invention stores data in advance in order to control access to a flash memory that erases stored data in units of blocks in accordance with instruction information given from a host system. A flash memory control method for executing a series of control operations based on a code set including a plurality of operation instruction codes stored in a means, and included in the instruction information when the instruction information is given A code set selection step of selecting the code set corresponding to an external command and setting an address of the operation instruction code included in the code set in an address holding unit; and storing the memory according to an address set in the address holding unit Reading the operation instruction code from the means, based on the operation instruction code A control operation execution step for executing the control operation, and a control to be executed next to the address set in the address holding means each time the control operation based on the operation instruction code is executed in the control operation execution step And an address update step of changing to the address of the operation instruction code corresponding to the operation.
このように、制御動作実行ステップで、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて制御動作を実行するようにしたので、前記アドレス保持手段に設定されているアドレスを参照することにより、前記フラッシュメモリに対するアクセス状況を容易に把握できる。従って、前記フラッシュメモリに対するアクセスを停止させるような場合は、前記アドレス保持手段に設定されているアドレスに基づいて、制御動作を停止させるタイミングを決めることができる。 Thus, in the control operation execution step, the operation instruction code is read from the storage unit according to the address set in the address holding unit, and the control operation is executed based on the read operation instruction code. By referring to the address set in the address holding means, the access status to the flash memory can be easily grasped. Therefore, when the access to the flash memory is stopped, the timing for stopping the control operation can be determined based on the address set in the address holding means.
又、本発明のフラッシュメモリの制御方法は、前記アドレス保持手段に設定されているアドレスを変更することにより、前記コードセット選択ステップで選択された前記コードセットに基づいた一連の制御動作を強制的に終了させる強制終了ステップを含むことが好ましい。 The flash memory control method of the present invention forcibly executes a series of control operations based on the code set selected in the code set selection step by changing the address set in the address holding means. Preferably, a forcible termination step is included.
つまり、制御動作実行ステップで、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて制御動作を実行するようにしたので、前記アドレス保持手段に設定されているアドレスを変更することにより、前記フラッシュメモリに対するアクセス動作を容易に制御することができる。 That is, in the control operation execution step, the operation command code is read from the storage unit according to the address set in the address holding unit, and the control operation is executed based on the read operation command code. By changing the address set in the address holding means, the access operation to the flash memory can be easily controlled.
本発明によれば、フラッシュメモリに対する読み出しまたは書き込みの処理と、アクセス先の物理アドレスを求めるアドレスの変換処理や空きブロック検索を並列して実行することが可能になる。これにより、フラッシュメモリにアクセスするときの処理効率を向上させることができる。 According to the present invention, it is possible to execute in parallel a read or write process for a flash memory, an address conversion process for obtaining an access destination physical address, and an empty block search. Thereby, the processing efficiency when accessing the flash memory can be improved.
また、メモリコントローラ内のマイクロプロセッサは、メモリコントローラ内のフラッシュメモリシーケンスブロックの動作状況を容易に把握できると共に、フラッシュメモリシーケンスブロックの動作を中止させたりすることを容易に行うことができる。従って、フラッシュメモリシステムに与えられる電圧が低下した場合、書き込みを中止させることにより、フラッシュメモリのデータが異常になるのを防ぐことができる。 The microprocessor in the memory controller can easily grasp the operation status of the flash memory sequence block in the memory controller and can easily stop the operation of the flash memory sequence block. Therefore, when the voltage applied to the flash memory system decreases, the data in the flash memory can be prevented from becoming abnormal by stopping the writing.
以下、図面に基づき、本発明の実施形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
FIG. 1 is a block diagram schematically showing the
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
The
[フラッシュメモリ2の説明]
フラッシュメモリ2は、不揮発性メモリであり、レジスタとメモリセルアレイとから構成される。フラッシュメモリ2は、レジスタとメモリセルアレイとの間でデータの複写を行って、データの書き込みまたは読み出しを行う。
[Description of flash memory 2]
The
メモリセルアレイは、複数のメモリセル群とワード線とを備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写または選択されたメモリセルからレジスタへのデータの複写が行われる。 The memory cell array includes a plurality of memory cell groups and word lines. Each memory cell group includes a plurality of memory cells connected in series. The word line is for selecting a specific memory cell in the memory cell group. Data is copied between the selected memory cell and the register via the word line, that is, data is copied from the register to the selected memory cell, or data is copied from the selected memory cell to the register. .
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、2つのゲートは、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。 A memory cell constituting the memory cell array is constituted by a MOS transistor having two gates. Here, the two gates are called a control gate and a floating gate. Data can be written or erased by injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate. Done.
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。 Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. Note that, when electrons are injected into the floating gate, a high voltage at which the control gate is on the high potential side is applied between the control gate and the floating gate. Further, when electrons are discharged from the floating gate, a high voltage at which the control gate becomes a low potential side is applied between the control gate and the floating gate.
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。 Here, a state where electrons are injected into the floating gate is a write state, which corresponds to a logical value “0”. The state in which electrons are discharged from the floating gate is an erased state, which corresponds to a logical value “1”.
図2は、ブロックとページの関係を示す説明図である。上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、図2(a)に示したような小ブロックのフラッシュメモリと、図2(b)に示したような大ブロックのフラッシュメモリが一般的に使用されている。小ブロック構成では、図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. Although the configuration of the block and page differs depending on the specifications of the flash memory, a small block flash memory as shown in FIG. 2A and a large block flash memory as shown in FIG. Has been used. In the small block configuration, as shown in FIG. 2A, one block includes 32 pages (P0 to P31), and each page includes a 512-byte user area and a 16-byte redundant area. In the large block configuration of the present embodiment, 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. It consists of
大ブロック構成の場合、各ページのユーザ領域には4セクタ分のデータが記憶されるため、1セクタ分の領域をサブページとすれば、各ページは4個のサブページで構成され、各ブロックは256個のサブページで構成されている。また、フラッシュメモリ2内の記憶領域を特定する物理アドレスは、フラッシュメモリ2のブロック(以後、物理ブロックと言う。)を特定する物理ブロックアドレスと、各物理ブロック内のサブページを特定するサブページ番号(0〜255)に基づいて生成される。なお、フラッシュメモリ2に対しては、ページを特定するロウアドレスとページ内の領域を特定するカラムアドレスが、記憶領域を特定するアドレス情報として与えられる。各サブページには、冗長領域を4つに分割した領域が割り当てられる。
In the case of a large block configuration, data for 4 sectors is stored in the user area of each page, so if the area for 1 sector is a subpage, each page is composed of 4 subpages. Consists of 256 subpages. The physical address for specifying the storage area in the
一方、小ブロック構成の場合、各ページのユーザ領域には1セクタ分のデータが記憶されるため、サブページはページと同じになる。大ブロック構成と同様にフラッシュメモリ2内の記憶領域を特定する物理アドレスは、フラッシュメモリ2の物理ブロックを特定する物理ブロックアドレスと、各物理ブロック内のページを特定するページ番号(0〜31)に基づいて生成される。同様に、フラッシュメモリ2に対しては、ページを特定するロウアドレスとページ内の領域を特定するカラムアドレスが、記憶領域を特定するアドレス情報として与えられる。
On the other hand, in the case of the small block configuration, since data for one sector is stored in the user area of each page, the subpage is the same as the page. Similar to the large block configuration, the physical address for specifying the storage area in the
ここで、ユーザ領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロック11によって生成される。
Here, the user area is mainly an area where data supplied from 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 it is determined whether or not the block is an erased block depending on whether the corresponding logical address information is written. can do. 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 it is determined that the physical block is a bad block Is set with a flag indicating that it is a bad block.
[コントローラ3の説明]
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
[Description of controller 3]
As shown in FIG. 1, the
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。
The
ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド(ホストシステム4からフラッシュメモリシステム3に与えられるコマンド)等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
The host interface block 7 exchanges data, address information, status information, external commands (commands given from the
図1に示すワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
A work area 8 shown in FIG. 1 is a work area in which data necessary for controlling the
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
The buffer 9 temporarily stores data read from the
フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理等を制御するブロックである。書き込み処理や読み出し処理等を実行するときの一連の制御動作は、ROM12に記憶されている一連の制御動作を指示する情報に基づいて実行される。この一連の制御動作に含まれる各制御動作を指示する情報を、以下、動作命令コードという。又、一連の制御動作に含まれる各制御動作に対応する動作命令コードの集合をコードセットという。
The flash
なお、上記動作命令コードには、フラッシュメモリ2に対して制御信号、コマンド、アドレスまたは書き込みデータ等を出力することを指示するものや、分岐条件に基づいた分岐先を指示するものや、フラッシュメモリ2のビジー状態が解除されるのを待つことを指示するもの等がある。また、動作命令コードは、通常は記述されている順番に読み出されるが、分岐先を指示する動作命令コードが含まれている場合は、分岐先を指示する動作命令コードに従って次に読み出す動作命令コードを決定する。
The operation instruction code includes an instruction to output a control signal, a command, an address, write data, or the like to the
図3は、フラッシュメモリインターフェースブロック10のレジスタ構成を示している図である。物理ブロックアドレスレジスタ21は、フラッシュメモリ2内の物理ブロックを指定するレジスタであり、サブページ番号レジスタ22は、物理ブロック内のサブページを指定するレジスタである。カウンタ23は、読み出すまたは書き込むサブページ数を指定するレジスタである。プログラムカウンタ24は、上記動作命令コードのROM12内でのアドレスを指定するレジスタである。
FIG. 3 is a diagram showing a register configuration of the flash
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるECCを生成するとともに、フラッシュメモリ2から読み出したデータに付加されたECCに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
The
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。また、上記のコードセットはROM12内に記憶されている。
The
図4は、コードセットと動作命令コードを説明するための図である。ROM12内のコードセット領域に複数のコードセットが記憶されている。マイクロプロセッサ6が、ホストシステムからの指示情報に含まれる外部コマンドに応じて、ROM12に記憶されている複数のコードセットからフラッシュメモリインターフェースブロック10に与えるコードセットを選択する。
FIG. 4 is a diagram for explaining a code set and an operation instruction code. A plurality of code sets are stored in the code set area in the
すべてのコードセットは、分岐命令を含んでおり、最後にコードセット領域の最終動作命令コードに分岐してコードセットに対応する一連の制御動作が終了する。このように、すべてのコードセットは最後に同じ動作命令コードに分岐して、つまり、同じアドレスに分岐して終了する。本実施形態では、最終動作命令コードはマイクロプロセッサ6に割り込みを発生させる動作を行い、フラッシュメモリ2とのアクセスが終了したことをマイクロプロセッサ6に知らせている。
All the code sets include a branch instruction. Finally, a branch is made to the final operation instruction code in the code set area, and a series of control operations corresponding to the code set is completed. Thus, all code sets finally branch to the same operation instruction code, that is, branch to the same address and end. In the present embodiment, the final operation instruction code performs an operation for causing the
[アドレス変換処理の説明]
本実施形態に係るフラッシュメモリシステム1では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割り当てている。
[Description of address conversion process]
In the
図5は、アドレス変換処理を説明するための説明図である。本図を用いて、アドレス変換処理について具体的に説明する。 FIG. 5 is an explanatory diagram for explaining the address conversion process. The address conversion process will be specifically described with reference to FIG.
ホストシステム側の論理アドレス空間は、図5(a)に示したようにセクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。また、図5(b)に示したように論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれた論理ブロックの各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。一方、図5(c)に示したように、物理ブロックには、それぞれ固有の物理ブロックアドレス(PBA)が割り当てられている。さらに、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに付けた通番を物理ゾーン番号(PZN)と呼んでいる。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。 The logical address space on the host system side is managed by an LBA (Logical Block Address) which is a serial number assigned to an area divided in units of sectors (512 bytes) as shown in FIG. Further, a group of a plurality of sectors is called a logical block, and a group of a plurality of logical blocks is called a logical zone. Further, as shown in FIG. 5B, the serial numbers assigned to the logical blocks are called logical block numbers (LBN), and the serial numbers assigned to the logical zones are called logical zone numbers (LZN). In addition, a serial number in each logical zone of a logical block included in each logical zone is called a logical zone block number (LZIBN). On the other hand, as shown in FIG. 5C, each physical block is assigned a unique physical block address (PBA). Further, a physical zone is constituted by a plurality of physical blocks, and a serial number assigned to each physical zone is called a physical zone number (PZN). A serial number in each physical zone of a physical block included in each physical zone is called an intra-physical zone block number (PZIBN).
また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。したがって、1個の論理ブロックに含まれるセクタ数は、1個の物理ブロックに含まれるセクタ領域の個数に応じて設定される。但し、1個の論理ブロックを複数個の物理ブロックに割り当てる場合には、その複数個の物理ブロックを1個の物理ブロックとみなして1個の論理ブロックに含まれるセクタ数を設定する。 In addition, one physical zone is allocated to each logical zone, and data corresponding to each logical block included in the logical zone is written to a physical block included in the physical zone allocated to the logical zone. Therefore, the number of sectors included in one logical block is set according to the number of sector areas included in one physical block. However, when one logical block is assigned to a plurality of physical blocks, the plurality of physical blocks are regarded as one physical block, and the number of sectors included in one logical block is set.
図5に示した例では、1個の物理ブロックが256個のセクタ領域で構成されたフラッシュメモリを想定しているため、256セクタが1個の論理ブロックに対応している。したがって、LBN#0〜#499の500個の論理ブロックで構成されたLZN#0の論理ゾーンは、LBA#0〜#127999の128000セクタの領域に対応している。 以下同様に、LZN#1の論理ゾーンは、LBA#128000〜#255999の128000セクタの領域に対応し、LZN#2の論理ゾーンは、LBA#256000〜#383999の128000セクタの領域に対応し、LZN#3の論理ゾーンは、LBA#384000〜#511999の128000セクタの領域に対応している。
In the example shown in FIG. 5, a flash memory in which one physical block is composed of 256 sector areas is assumed, and therefore 256 sectors correspond to one logical block. Therefore, the logical zone of
また、LBN#0〜#499の500個の論理ブロックで構成されたLZN#0の論理ゾーンは、PBA#0〜#511の512個の物理ブロックで構成されたPZN#0の物理ゾーンに割り当てられている。以下同様に、LZN#1の論理ゾーンは、PZN#1の物理ゾーンに割り当てられ、LZN#2の論理ゾーンは、PZN#2の物理ゾーンに割り当てられ、LZN#3の論理ゾーンは、PZN#3の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データと旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。
In addition, the logical zone of
また、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがLBAの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することにより、ホストシステム4から与えられるLBAとフラッシュメモリ2内のアクセス領域の対応関係を管理することができる。
In addition, since the data of the logical blocks assigned to the physical block are written in each physical block in the LBA order, the LBA given from the
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。論理ブロックに対応する物理ブロックがアドレス変換テーブルに存在しない場合、およびデータが書き込まれているページを書き換える場合、消去済みブロック(又は有効なデータが記憶されていない物理ブロック)を検索する必要がある。このため、アドレス変換テーブルと共に消去済みブロックを検索するためのテーブル(以下、空きブロック検索テーブル)が作成される。 Note that the correspondence between the physical block and the logical block changes every time data is written or erased. Therefore, an address conversion table is created in order to manage the correspondence between the two at each time point, and the address conversion table is updated each time the correspondence changes. When a physical block corresponding to a logical block does not exist in the address translation table and when a page in which data is written is rewritten, it is necessary to search for an erased block (or a physical block in which valid data is not stored). . For this reason, a table for searching for an erased block (hereinafter referred to as an empty block search table) is created together with the address conversion table.
このアドレス変換テーブルは、物理ブロックの先頭ページの冗長領域に書き込まれる論理ブロックを示す情報(以下、論理アドレス情報という)に基づいて作成される。冗長領域に書き込まれる論理アドレス情報としては,LBN等の論理ブロックを特定することができる情報が用いられる。なお、論理ゾーンと物理ゾーンとの対応関係は予め設定されている場合は、LZIBNに基づいて論理ブロックを特定することができるので、アドレス変換テーブルを作成することができるので、LBNよりデータ量の少ないLZIBNを用いることが好ましい。 This address conversion table is created based on information (hereinafter referred to as logical address information) indicating a logical block written in the redundant area of the first page of the physical block. As the logical address information written in the redundant area, information that can specify a logical block such as LBN is used. If the correspondence between the logical zone and the physical zone is set in advance, the logical block can be specified based on the LZIBN, so that an address conversion table can be created. It is preferable to use less LZIBN.
また、データが書き込まれていない物理ブロックには、論理アドレス情報が格納されていない。従って、論理アドレス情報が格納されていない場合は、消去済みブロックであると判断される。 Further, no logical address information is stored in a physical block in which no data is written. Therefore, when the logical address information is not stored, it is determined that the block is an erased block.
[フラッシュメモリに対するアクセスの説明]
次に、ホストシステム4から指示情報が与えられた場合の処理について説明する。
[Description of access to flash memory]
Next, processing when instruction information is given from the
ホストシステム4がフラッシュメモリ2に対して、読み出しまたは書き込みを実行する場合、読み出し及び書き込み等の外部コマンドと共に、アクセスの対象領域に関する情報が供給される。このアクセスの対象領域は、セクタ単位の論理アドレス(例えば、LBA)とセクタ数で指定される。ここで、ホストシステム4から供給される論理アドレスは、アクセスの対象の先頭アドレスを示し、ホストシステム4から供給されるセクタ数は、先頭アドレスから何セクタ分の領域がアクセスの対象であるかを示している。
When the
ここで、ホストシステム4から指示されるアクセス領域が、複数の論理ブロックに跨っている場合、論理ブロック毎に論理ブロックから物理ブロックへの変換処理を行わなければならない。そのため、ホストシステム4からの指示情報は、論理ブロックごとのグループに分割され、グループ毎にフラッシュメモリ2に対するアクセスが行われる。
Here, when the access area instructed from the
つまり、マイクロプロセッサ6は、グループに分割された各指示情報に対応する一連の制御動作を実行させるための情報を、フラッシュメモリインターフェースブロック10の物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタ24に設定された情報に基づいて一連の制御動作を実行する。
That is, the
ホストシステム4から指示情報が与えられたときに、マイクロプロセッサ6が行う処理について図6を参照して説明する。図6は、マイクロプロセッサ6がフラッシュメモリインターフェースブロック10に行う処理を示すフローチャートである。
(S61)ホストシステム4から与えられる指示情報に含まれるアクセス領域を指示する情報に基づいてアクセス対象領域が含まれる論理ブロックを求め、更に、論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)をアドレス変換処理により求める。つまり、S61では、まず、アクセス対象領域が含まれる論理ブロックの論理ブロック番号(LBN)が求められる。続いて、論理ブロック番号(LBN)と物理ブロックアドレス(PBA)の対応関係を示したアドレス変換テーブルを参照して、アクセス対象領域が含まれる論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)が求められる。
(S64)フラッシュメモリインターフェースブロック10が動作中のときは、動作が終了するのを待ち、動作が終了しているときはS62に進む。ここで、フラッシュメモリインターフェースブロック10が動作中か否かは、フラッシュメモリインターフェースブロック10からの割り込みがあったかどうかで判断する。
(S62)フラッシュメモリインターフェースブロック10の物理ブロックアドレスレジスタ21、サブページ番号レジスタ22及びカウンタ23にフラッシュメモリ内の領域を指示する情報を設定する。具体的には、S61で求めた物理ブロックアドレス(PBA)を物理ブロックアドレスレジスタ21に設定する。次に、アクセス対象領域の先頭セクタに対応するLBAの下位8ビット(0〜255)をサブページ番号レジスタ22に設定する。最後に、アクセス対象領域に含まれるセクタ数をカウンタ23に設定する。ここで、アクセス領域が複数の論理ブロックに跨っていない場合、ホストシステム4からの指示情報に含まれるセクタ数がカウンタ23に設定される値に一致する。一方、ホストシステム4から指示されるアクセス領域が、複数の論理ブロックに跨っている場合、各論理ブロック内におけるアクセス対象領域に含まれるセクタ数をカウンタ23に設定する。
(S63)フラッシュメモリインターフェースブロック10のプログラムカウンタ24に動作命令コードのアドレスを設定する。ここでは、ホストシステム4からの指示情報に含まれるコマンドに対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。例えば、コマンドが読み出し指示するコマンドの場合、読み出しのときにフラッシュメモリインターフェースブロック10が実行する一連の制御動作に対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。このプログラムカウンタ24に動作命令コードのアドレスが設定された後、フラッシュメモリインターフェースブロック10は後述する図7に示した一連の制御動作を開始する。
Processing performed by the
(S61) A logical block including the access target area is obtained based on the information indicating the access area included in the instruction information given from the
(S64) When the flash
(S62) Information indicating an area in the flash memory is set in the physical
(S63) The address of the operation instruction code is set in the
プログラムカウンタ24に動作命令コードに設定した後、S61に戻り、ホストシステム4から与えられる指示情報に基づくアクセス対象領域が更にあれば、そのアクセス対象領域が含まれる論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)が求める。
After setting the operation instruction code in the
このように、マイクロプロセッサ6はフラッシュメモリインターフェースブロック10がフラッシュメモリ2にアクセスをしている間にアドレス変換処理を行う。これにより、アドレス変換処理とフラッシュメモリ2とのアクセスが並列に行われることになる。
As described above, the
次に、フラッシュメモリインターフェースブロック10が実行する一連の制御動作について説明する。フラッシュメモリインターフェースブロック10は、プログラムカウンタ24に設定されているアドレスから動作命令コードを読み出し、動作命令コードに対応した制御動作を実行する。制御動作が終了する毎に、プログラムカウンタ24に設定されているアドレスが1ステップ進められる。又、分岐する場合は、分岐先のアドレスがプログラムカウンタ24に設定される。図7は、読み出し処理又は書き込み処理のときに、フラッシュメモリインターフェースブロック10が実行する一連の制御動作を示すフローチャートである。これらの制御動作は、ROM12から読み出した各動作命令コードに基づいて実行される。又、各制御動作は、1つ又は複数の各動作命令コードに基づいて実行される。
(S71)フラッシュメモリ2にコマンドとアドレスを供給しデータを送受信する。例えば、読み出し処理の場合、まず、フラッシュメモリ2に読み出しを指示する内部コマンド(リードコマンド)を供給する。続いて、読み出すデータが記憶されているページを指定するロウアドレスと、ページ内の読み出し開始位置(0バイト〜2111バイト)を指定するカラムアドレスとをフラッシュメモリ2に供給する。先頭サブページからデータを読み出す場合には、カラムアドレスで先頭のサブページに対応するアドレスを指定する。ここで、フラッシュメモリ2はメモリセルアレイからレジスタへのデータの読み出し(複写)を実行するためビジー状態になる。フラッシュメモリ2のビジー状態が解除された後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、フラッシュメモリ2内のレジスタから先頭のサブページに対応するデータを読み出す。
Next, a series of control operations executed by the flash
(S71) A command and an address are supplied to the
次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と先頭のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、フラッシュメモリ2内のレジスタから先頭のサブページに対応するECCを読み出す。
Next, an internal command (random read command) for instructing the change of the reading start position in the page and a column address for specifying the position where the ECC corresponding to the head subpage is stored are supplied. Thereafter, high level and low level signals are alternately input to the read enable terminal of the
ここで、読み出しを指示する内部コマンド(リードコマンド)は、各ページから最初にデータを読み出すときにだけ供給される。例えば、先頭のサブページ(ECCを含む)からデータを読み出した後、そのページ内の2番目のサブページからデータを読み出す場合は、上記と同様にページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と2番目のサブページに対応するカラムアドレスを供給する。 Here, an internal command (read command) instructing reading is supplied only when data is first read from each page. For example, when data is read from the second subpage in the page after data is read from the first subpage (including ECC), the internal instructing the change of the read start position in the page is the same as described above. A command (random read command) and a column address corresponding to the second subpage are supplied.
尚、1個のサブページのユーザ領域が4個のサブページで構成されている場合、物理ブロックアドレスレジスタ21に設定されている物理ブロックアドレス(PBA)にサブページ番号レジスタ22に設定されている8ビットの値の上位側6ビット(10進数で0〜63)を連結してロウアドレスを生成する。又、カラムアドレスについては、サブページ番号レジスタ22に設定されている8ビットの値の下位側2ビット(10進数で0〜3)の値に基づいて生成される。つまり、サブページ番号レジスタ22にされている8ビットの値の下位側2ビットが00(10進数で0)の場合、カラムアドレスは先頭のサブページに対応するアドレスになる。同様に、下位側2ビットが01(10進数で1)の場合、カラムアドレスは2番目のサブページに対応するアドレスになり、下位側2ビットが10(10進数で2)の場合、カラムアドレスは3番目のサブページに対応するアドレスになり、下位側2ビットが11(10進数で3)の場合、カラムアドレスは4番目のサブページに対応するアドレスになる。
When the user area of one subpage is composed of four subpages, the physical page address (PBA) set in the physical
一方、書き込み処理の場合は、フラッシュメモリ2内のレジスタへのデータ転送を指示する内部コマンド(インプットコマンド)、ロウアドレス及びカラムアドレスをフラッシュメモリ2に供給する。続いて、フラッシュメモリ2のライトイネーブル端子にハイレベルとローレベルの信号を交互に入力し、この信号に合わせて1セクタ分のデータをフラッシュメモリ2に供給する。次に、カラムアドレスの変更を指示する内部コマンド(ランダムインプットコマンド)と、ECC等の付加データを書き込む冗長領域の位置を指定するカラムアドレスをフラッシュメモリ2に供給する。続いて、フラッシュメモリ2のライトイネーブル端子にハイレベルとローレベルの信号を交互に入力し、この信号に合わせてECC等の付加データをフラッシュメモリ2に供給する。
On the other hand, in the case of write processing, an internal command (input command) for instructing data transfer to a register in the
ここで、データ転送を指示する内部コマンド(インプットコマンド)は、各ページに書き込みデータを最初に転送するときにだけ供給される。例えば、先頭のサブページに書き込むデータ(付加データも含む)を転送した後、そのページ内の2番目のサブページに書き込むデータを転送する場合は、上記と同様にカラムアドレスの変更を指示する内部コマンド(ランダムインプットコマンド)と2番目のサブページに対応するカラムアドレスを供給する。 Here, an internal command (input command) for instructing data transfer is supplied only when write data is first transferred to each page. For example, when transferring data to be written to the second subpage within the page after transferring data to be written to the first subpage (including additional data), the internal addressing the column address change is the same as above. A column address corresponding to the command (random input command) and the second subpage is supplied.
又、フラッシュメモリ2内のレジスタに保持されているデータをメモリセルアレイに書き込む(複写する)場合には、レジスタからメモリセルアレイへの書き込み(複写)を指示する内部コマンド(プログラムコマンド)をフラッシュメモリ2に供給する。この内部コマンド(プログラムコマンド)は、4番目のサブページに書き込むデータと、このデータに対応する付加データの転送が終了した後に供給する。
(S72)フラッシュメモリインターフェースブロック10内のサブページ番号レジスタ22及びカウンタ23に設定されている値を更新する。この更新では、サブページ番号レジスタ22に設定されている値をインクリメント(1ずつ加算)し、カウンタ23に設定されている値をデクリメント(1ずつ減算)する。つまり、1セクタ分の読み出し又は書き込みが終了する毎に、サブページ番号レジスタ22に設定されている値が1ずつ増加し、カウンタ23に設定されている値が1ずつ減少する。
(S73)カウンタ23に設置されている値が0の場合は、S74に進み、0でない場合は、S71に進む。例えば、サブページ番号レジスタ22に値mを設定し、カウンタ23に値nを設定した読み出し処理では、サブページ番号#m〜#m+n−1のサブページに記憶されたnセクタのデータが読み出された後にS74に進む。
(S74)一連の制御動作が終了したことをマイクロプロセッサ6に通知する割り込みを発生させる。つまり、カウンタ23に設置されている値が0のときに最終動作命令コードに分岐し、割り込みを発生させる。
When data held in a register in the
(S72) The values set in the
(S73) If the value installed in the
(S74) An interrupt for notifying the
図8は、本発明の実施形態における論理アドレス空間、物理アドレス空間の一例を示す図である。本図を用いて、本発明のアクセス処理を具体的に説明する。 FIG. 8 is a diagram showing an example of a logical address space and a physical address space in the embodiment of the present invention. The access processing of the present invention will be specifically described with reference to this figure.
ホストシステム4からの指示情報がLBA#510から4セクタの読み出し処理(1)の場合について説明する。読み出し処理(1)は、2つの論理ブロックに跨っているため、LBA#510から2セクタの読み出し処理(1')とLBA#512から2セクタの読み出し処理(1")にグループ化される。
A case will be described in which the instruction information from the
S61で、マイクロプロセッサ6は、読み出し処理(1')のアクセスのためのアドレス変換処理を行う。図8(b)に示したように、読み出し処理(1')のアクセス対象領域であるLBA#510〜#511は、LBN#1に含まれる。従って、LBN#1の論理ブロックに対応する物理ブロックの物理ブロックアドレス(PBA)を、アドレス変換テーブル参照して求める。図8(c)に示したように、LBN#1の論理ブロックがPBA#4の物理ブロックに対応する場合は、このアドレス変換処理により求められる物理ブロックアドレス(PBA)はPBA#4になる。尚、アドレス変換テーブルは、各物理ゾーンに含まれる物理ブロックの冗長領域から論理アドレス情報を読み出すこととによってゾーン毎に作成することができる。アドレス変換テーブルは、起動時又はアクセス前に作成する。
In S61, the
S63で、ホストシステム4から与えられた読み出しコマンド(外部コマンド)に対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタに設定された情報に基づいて読み出し処理(1')に対応した一連の制御動作を開始する。
In S 63, the address of the head operation instruction code of the code set corresponding to the read command (external command) given from the
S62、S63で読み出し処理(1')に対応した情報の設定が終了した後、S61に戻り、読み出し処理(1")のアクセスのためのアドレス変換処理を行う。図8(b)に示したように、読み出し処理(1")のアクセス対象領域であるLBA#512〜#513は、LBN#2に含まれる。従って、LBN#2の論理ブロックに対応する物理ブロックの物理ブロックアドレス(PBA)を、アドレス変換テーブル参照して求める。図8(c)に示したように、LBN#2の論理ブロックがPBA#1の物理ブロックに対応する場合は、このアドレス変換処理により求められる物理ブロックアドレス(PBA)はPBA#1になる。
After the setting of the information corresponding to the read process (1 ′) is completed in S62 and S63, the process returns to S61 to perform the address conversion process for access of the read process (1 ″) as shown in FIG. As described above,
フラッシュメモリインターフェースブロック10が一連の制御動作を実行している場合は、その一連の制御動作が終了するのを待ち、一連の制御動作が終了したことを確認した後、S62で、物理ブロックアドレスレジスタ21に1を設定する。また、読み出し処理(1")のアクセス対象領域の先頭のセクタはLBA#512であり、2進数で"10 0000 0000"なので、下位8ビットは、2進数で"0000 0000"(10進数で0)になる。従って、サブページ番号レジスタ22に0を設定する。また、読み出し処理(1")のアクセス対象領域に含まれるセクタ数は2なので、カウンタ23に2を設定する。
If the flash
S63で、ホストシステムから与えられた読み出しコマンド(外部コマンド)に対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタに設定された情報に基づいて読み出し処理(1")に対応した一連の制御動作を開始する。
In S63, the address of the head operation instruction code of the code set corresponding to the read command (external command) given from the host system is set in the
次に、フラッシュメモリインターフェースブロック10が実行する一連の制御動作を具体的に説明する。尚、読み出し処理(1')と読み出し処理(1")は同様な処理なので、読み出し処理(1')に対応した一連の制御動作についてだけ説明する。S71で、読み出しを指示する内部コマンド(リードコマンド)をフラッシュメモリ2に供給する。次に、物理ブロックアドレスレジスタ21に設定されている4(2進数で100)に、サブページ番号レジスタ22に設定されている254(2進数で1111 1110)の上位側6ビット(11 1111)を連結したロウアドレス(2進数で1 0011 1111)を生成し、生成したロウアドレスをフラッシュメモリ2に供給する。続いて、サブページ番号レジスタ22に設定されている254(2進数で1111 1110)の下位側2ビットは10(10進数で2)なので、3番目のサブページのカラムアドレスをフラッシュメモリ2に供給する。
Next, a series of control operations executed by the flash
フラッシュメモリ2のビジー状態が解除された後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力して、3番目のサブページに対応する1セクタのデータを読み出す。次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と3番目のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、3番目のサブページに対応するECCを読み出す。
After the busy state of the
S72で、サブページ番号レジスタ22に設定されている値を254(2進数で1111 1110)から255(2進数で1111 1111)に変更し、カウンタ23に設定されている値を2から1に変更する。
In S72, the value set in the
カウンタ23に設定されている値が1なのでS71に戻る(S73)。ここで、サブページ番号レジスタ22に設定されている255(2進数で1111 1111)の下位側2ビットは11(10進数で3)なので、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と4番目のサブページのカラムアドレスをフラッシュメモリ2に供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、4番目のサブページに対応する1セクタのデータを読み出す。次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と4番目のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、4番目のサブページに対応するECCを読み出す。
Since the value set in the
S72で、サブページ番号レジスタ22に設定されている値を255(2進数で1111 1111)から0(2進数で0000 0000)に変更し、カウンタ23に設定されている値を1から0に変更する。
カウンタ23に設定されている値が0なのでS74に進み(S73)、マイクロプロセッサ6に一連の制御動作が終了したことを通知する割り込みを発生させる。
In S72, the value set in the
Since the value set in the
以上で説明したように、本発明のフラッシュメモリシステム1では、読み出し処理又は書き込み処理と、アドレス変換処理が並列に実行できる。
As described above, in the
更に、本発明のフラッシュメモリシステム1では、フラッシュメモリシーケンスブロック10の動作状況を容易に把握できると共に、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を中止させたりすることを容易に行うことができる。
Furthermore, in the
つまり、本発明のフラッシュメモリシステムでは、フラッシュメモリシーケンスブロック10がプログラムカウンタ24に設定されるアドレスに従ってROM12から動作命令コードを読み出し、読み出した動作命令コードに基づいて制御動作を実行するため、プログラムカウンタ24に設定されるアドレスを参照することにより、フラッシュメモリシーケンスブロック10が実行している制御動作を把握することができる。
That is, in the flash memory system of the present invention, the flash
又、フラッシュメモリシーケンスブロック10が一連の制御動作を実行しているときに、フラッシュメモリシステム1に供給されている電圧が所定の電圧値よりも低くなった場合やホストシステムから新たな指示情報が与えられた場合に、プログラムカウンタ24に設定されるアドレスを最終動作命令コードに対応するアドレスに変更することにより、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を強制的に終了させることができる。尚、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を強制的に終了させる場合は、不完全なデータがフラッシュメモリ2に書き込まれる等の不具合が発生することがないタイミングで終了させることが好ましい。例えば、電圧が低下したときに、書き込みデータがフラッシュメモリ2内のレジスタに保持されていても、レジスタからメモリセルアレイへの書き込み(複写)を実行せず制御動作を強制的に終了させることが好ましい。
Further, when the flash
なお、本実施形態は大ブロックのフラッシュメモリについて説明してきたが、小ブロックのフラッシュメモリについても同様に適用可能である。 Although the present embodiment has been described with respect to a large block flash memory, the present invention can be similarly applied to a small block flash memory.
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。 Moreover, all the embodiment described above shows the present invention exemplarily, and does not limit the present invention, and the present invention can be implemented in other various modifications and changes. Therefore, the scope of the present invention is defined only by the claims and their equivalents.
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
21 物理ブロックアドレスレジスタ
22 サブページ番号レジスタ
23 カウンタ
24 プログラムカウンタ
DESCRIPTION OF
13
Claims (5)
前記フラッシュメモリに対するアクセスを制御するために実行される制御動作を指示する動作命令コードを複数個含むコードセットを複数組記憶しているコードセット記憶手段と、
前記コードセット記憶手段に記憶されている前記動作命令コードのアドレスを保持するアドレス保持手段と、
前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスを前記アドレス保持手段に設定するコードセット選択手段と、
セクタ単位の論理アドレスが割り当てられている複数セクタの領域を論理ブロックとして管理する論理ブロック管理手段と、
前記指示情報により指示されたアクセス領域の先頭領域の前記論理アドレスを、前記論理ブロックに付けられた論理ブロック番号を示す上位側のビットと前記論理ブロック内の領域に付けられたセクタ番号を示す下位側のビットとに分割する論理アドレス分割手段と、
前記論理アドレス分割手段により求められた前記論理ブロック番号を、該論理ブロック番号に対応する前記物理ブロックの物理ブロックアドレスに変換するアドレス変換手段と、
前記アドレス変換手段により求められた前記物理ブロックアドレス、前記論理アドレス分割手段により求められた前記セクタ番号及び前記アクセス領域のセクタ数を保持するアクセス領域情報保持手段と、
前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行手段と、
前記制御動作実行手段が前記動作命令コードに基づいた制御動作を実行する毎に、前記アドレス保持手段に設定されているアドレスを、次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新手段と、
1セクタ分のアクセスが終了する毎に、前記アクセス領域情報保持手段に保持されている前記セクタ番号及び前記セクタ数を更新する情報更新手段とを備え、
前記制御動作実行手段は、前記アクセス領域情報保持手段に保持されている前記セクタ番号を上位側のビットと下位側のビットに分割し、前記セクタ番号を上位側のビットを前記アクセス領域情報保持手段に保持されている前記物理ブロックアドレスの下位側に連結することにより前記フラッシュメモリ内の物理ページを特定するロウアドレスを生成し、前記セクタ番号の下位側のビットに基づいて前記物理ページ内のセクタ領域を特定するカラムアドレスを生成し、
情報更新手段は、1セクタ分のアクセスが終了する毎に、前記セクタ番号を1増加させ、前記セクタ数を1減少させることを特徴とするメモリコントローラ。 A memory controller that controls access to a flash memory that performs erasure of stored data in units of physical blocks in accordance with instruction information given from a host system,
Code set storage means for storing a plurality of code sets including a plurality of operation instruction codes for instructing a control operation to be executed to control access to the flash memory;
Address holding means for holding an address of the operation instruction code stored in the code set storage means;
When the instruction information is given, a code set that selects the code set corresponding to the external command included in the instruction information and sets the address of the operation instruction code included in the code set in the address holding unit A selection means;
Logical block management means for managing areas of a plurality of sectors assigned logical addresses in units of sectors as logical blocks;
Indicating the logical address, sector number assigned to the logical block upper side of bits indicating a logical block number assigned to a region of the logical block of the first part of the access area designated by the instruction information Logical address dividing means for dividing into lower bits,
Address converting means for converting the logical block number obtained by the logical address dividing means into a physical block address of the physical block corresponding to the logical block number;
Access area information holding means for holding the physical block address obtained by the address conversion means, the sector number obtained by the logical address dividing means, and the number of sectors of the access area;
Control operation executing means for reading the operation instruction code from the code set storage means according to the address set in the address holding means and executing a control operation based on the operation instruction code;
Each time the control operation execution means executes a control operation based on the operation instruction code, the address set in the address holding means is changed to the address of the operation instruction code corresponding to the control operation to be executed next. An address update means to be changed;
An information updating means for updating the sector number and the number of sectors held in the access area information holding means each time access for one sector is completed,
The control operation executing means divides the sector number held in the access area information holding means into upper bits and lower bits, and converts the upper bits into the access area information holding means. To generate a row address for specifying a physical page in the flash memory by connecting to the lower side of the physical block address held in the sector, and based on the lower bit of the sector number, a sector in the physical page is generated. Generate a column address that identifies the area,
The information update means increases the sector number by 1 and decreases the number of sectors by 1 each time access for one sector is completed.
前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスをアドレス保持手段に設定するコードセット選択ステップと、
セクタ単位の論理アドレスが割り当てられている複数セクタの領域を論理ブロックとして管理し、前記指示情報により指示されたアクセス領域の先頭領域の前記論理アドレスを、前記論理ブロックに付けられた論理ブロック番号を示す上位側のビットと前記論理ブロック内の領域に付けられたセクタ番号を示す下位側のビットとに分割する論理アドレス分割ステップと、
前記論理アドレス分割ステップにより求められた前記論理ブロック番号を、該論理ブロック番号に対応する前記物理ブロックの物理ブロックアドレスに変換するアドレス変換ステップと、
前記アドレス変換ステップにより求められた前記物理ブロックアドレス、前記論理アドレス分割ステップにより求められた前記セクタ番号及び前記アクセス領域のセクタ数を、アクセス領域情報保持手段に設定するアクセス領域情報設定ステップと
前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行ステップと、
前記制御動作実行ステップで前記動作命令コードに基づいた制御動作が実行される毎に、前記アドレス保持手段に設定されているアドレスを次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新ステップと、
1セクタ分のアクセスが終了する毎に、前記アクセス領域情報保持手段に保持されている前記セクタ番号及び前記セクタ数を更新する情報更新ステップとを含み、
前記制御動作実行ステップでは、前記アクセス領域情報保持手段に保持されている前記セクタ番号を上位側のビットと下位側のビットに分割し、前記セクタ番号を上位側のビットを前記アクセス領域情報保持手段に保持されている前記物理ブロックアドレスの下位側に連結することにより前記フラッシュメモリ内の物理ページを特定するロウアドレスを生成し、前記セクタ番号の下位側のビットに基づいて前記物理ページ内のセクタ領域を特定するカラムアドレスを生成し、
情報更新ステップでは、1セクタ分のアクセスが終了する毎に、前記セクタ番号を1増加させ、前記セクタ数を1減少させることを特徴とするフラッシュメモリの制御方法。 In order to control access to the flash memory that executes erasure of stored data in units of physical blocks in accordance with instruction information given from the host system, a code set including a plurality of operation instruction codes stored in advance in the storage means A flash memory control method for performing a series of control operations based on
Code set selection for selecting the code set corresponding to the external command included in the instruction information when the instruction information is given, and setting the address of the operation instruction code included in the code set in the address holding means Steps,
The area of the plurality sectors logical addresses of sectors are assigned managed as logical blocks, the logical address of the head region of the access area designated by the instruction information, the logical block number assigned to the logical block A logical address dividing step of dividing the high-order bit indicating the bit and the low-order bit indicating the sector number assigned to the area in the logical block;
An address conversion step of converting the logical block number obtained by the logical address division step into a physical block address of the physical block corresponding to the logical block number;
An access area information setting step for setting the physical block address obtained by the address conversion step, the sector number obtained by the logical address division step, and the number of sectors of the access area in an access area information holding unit; and A control operation execution step of reading the operation instruction code from the storage unit according to an address set in the holding unit and executing a control operation based on the operation instruction code;
Each time the control operation based on the operation instruction code is executed in the control operation execution step, the address set in the address holding means is changed to the address of the operation instruction code corresponding to the control operation to be executed next. An address update step to be changed;
An information update step of updating the sector number and the number of sectors held in the access area information holding means each time access for one sector is completed,
In the control operation executing step, the sector number held in the access area information holding means is divided into upper bits and lower bits, and the upper bits are divided into the access area information holding means. To generate a row address for specifying a physical page in the flash memory by connecting to the lower side of the physical block address held in the sector, and based on the lower bit of the sector number, a sector in the physical page is generated. Generate a column address that identifies the area,
In the information updating step, the flash memory control method is characterized by incrementing the sector number by 1 and decrementing the number of sectors by 1 each time access for one sector is completed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006256937A JP4661748B2 (en) | 2006-09-22 | 2006-09-22 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006256937A JP4661748B2 (en) | 2006-09-22 | 2006-09-22 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008077468A JP2008077468A (en) | 2008-04-03 |
JP4661748B2 true JP4661748B2 (en) | 2011-03-30 |
Family
ID=39349442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006256937A Active JP4661748B2 (en) | 2006-09-22 | 2006-09-22 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4661748B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4829370B1 (en) | 2010-07-09 | 2011-12-07 | 株式会社東芝 | MEMORY CONTROL DEVICE, MEMORY DEVICE, AND STOP CONTROL METHOD |
JP5722685B2 (en) * | 2011-04-12 | 2015-05-27 | 株式会社日立製作所 | Method for controlling semiconductor device and nonvolatile memory device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293427A (en) * | 1999-04-05 | 2000-10-20 | Mitsubishi Electric Corp | Storage medium on which flash memory is mounted |
JP2006155335A (en) * | 2004-11-30 | 2006-06-15 | Tdk Corp | Memory controller, flash memory system, and control method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509134A (en) * | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
JPH1063442A (en) * | 1996-08-22 | 1998-03-06 | Toshiba Corp | Semiconductor disk device |
-
2006
- 2006-09-22 JP JP2006256937A patent/JP4661748B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293427A (en) * | 1999-04-05 | 2000-10-20 | Mitsubishi Electric Corp | Storage medium on which flash memory is mounted |
JP2006155335A (en) * | 2004-11-30 | 2006-06-15 | Tdk Corp | Memory controller, flash memory system, and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2008077468A (en) | 2008-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4373943B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4661497B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4235646B2 (en) | Memory controller and flash memory system | |
JP4501881B2 (en) | Memory controller and flash memory system | |
JP4661191B2 (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 | |
JP4513786B2 (en) | Memory controller, memory system, and memory control method | |
JP4609406B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2005292925A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
JP4000124B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP3934659B1 (en) | Memory controller and flash memory system | |
JP4194518B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4304167B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4213166B2 (en) | Memory controller and flash memory system | |
JP2006178909A (en) | Memory controller, flash memory system and method for controlling flash memory | |
JP4235595B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4273109B2 (en) | Memory controller and flash memory system | |
JP4254930B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4366283B2 (en) | Memory controller and flash memory system including the memory controller | |
JP4569554B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4497124B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2005293177A (en) | Memory controller and flash memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100730 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101026 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101112 |
|
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: 20101207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4661748 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 Year of fee payment: 3 |