JP2008077468A - メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents

メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDF

Info

Publication number
JP2008077468A
JP2008077468A JP2006256937A JP2006256937A JP2008077468A JP 2008077468 A JP2008077468 A JP 2008077468A JP 2006256937 A JP2006256937 A JP 2006256937A JP 2006256937 A JP2006256937 A JP 2006256937A JP 2008077468 A JP2008077468 A JP 2008077468A
Authority
JP
Japan
Prior art keywords
address
flash memory
code
block
operation instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006256937A
Other languages
English (en)
Other versions
JP4661748B2 (ja
Inventor
Takuma Mitsunaga
琢真 光永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2006256937A priority Critical patent/JP4661748B2/ja
Publication of JP2008077468A publication Critical patent/JP2008077468A/ja
Application granted granted Critical
Publication of JP4661748B2 publication Critical patent/JP4661748B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】フラッシュメモリに対するアクセス状況を容易に把握できると共に、アクセス動作を容易に中止させることができるメモリコントローラを提供する。
【解決手段】フラッシュメモリに対するアクセスを制御するために実行される制御動作を指示する動作命令コードを複数個含むコードセットを記憶しているコードセット記憶手段と、動作命令コードのアドレスを保持するアドレス保持手段と、ホストシステムから外部コマンドが与えられたときに、その外部コマンドに対応するコードセットに含まれる動作命令コードのアドレスをアドレス保持手段に設定するコードセット選択手段と、アドレス保持手段に設定されているアドレスに従ってコードセット記憶手段から動作命令コードを読み出して制御動作を実行する制御動作実行手段と、制御動作実行手段が制御動作を実行する毎に、前記アドレス保持手段に設定されているアドレスを、次に実行すべき制御動作に対応する動作命令コードのアドレスに変更するアドレス更新手段を備える。
【選択図】図3

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
近年、メモリカードやシリコンディスク等といったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。
上記のメモリシステムで特に多く用いられるフラッシュメモリに、NAND型フラッシュメモリがある。NAND型フラッシュメモリでは、各メモリセルを他のメモリセルとは独立して、論理値"1"に対応する消去状態から、論理値"0"に対応する書込状態へと変化させることができる。これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルを他のメモリセルと独立して変化させることができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、"ブロック消去"と称されている。NAND型フラッシュメモリに対する書き込み処理または読み出し処理は、ページと称される予め定められた数のメモリセル単位で処理が実行されている。消去処理の単位であるブロックは、複数のページで構成されている。
上記のような構成を有するNAND型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書き換えを行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書き換え後のデータ)を書き込み、古いデータ(書き換え前のデータ)が書き込まれていたブロックを消去するという処理を行わなければならない。
このようなデータの書き換えを行った場合、書き換え後のデータは、書き換え前のデータと異なるブロックに書き込まれる。従って、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスとの対応関係は、データを書き換えるごとに動的に変化する。このため、フラッシュメモリにアクセスする場合には、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。
つまり、フラッシュメモリにアクセスするときは、論理ブロックアドレスを物理ブロックアドレスに変換するアドレス処理や消去済みブロックを検索する空きブロック検索を行わなければならない。
このアドレス変換処理にかかる時間によってアクセス速度が低下するのを回避するため、特許文献1では、フラッシュメモリのアクセス対象が複数の論理ブロックに跨っている場合、論理ブロックごとのグループに分割して、それぞれのグループでフラッシュメモリに対するアクセスとアクセス先の物理アドレスを求めるアドレス変換処理を並列して実行していた。これにより、特許文献1はフラッシュメモリにアクセスするときの処理効率を向上させていた。
特開2006−155335号公報
上記のようにフラッシュメモリに対するアクセスとアクセス先の物理アドレスを求めるアドレス変換処理を並行して実行する場合、メモリコントローラ内のフラッシュメモリシーケンスブロックがフラッシュメモリに対するアクセスを実行し、メモリコントローラ内のマイクロプロセッサが、アドレス変換処理を実行していた。しかしながら、特許文献1では、フラッシュメモリシーケンスブロックのアクセス状況を、マイクロプロセッサが把握することが困難であった。又、フラッシュメモリシーケンスブロックが動作を開始した後、マイクロプロセッサが、その動作を中止させることが困難であった。
したがって、フラッシュメモリシステムに与えられる電圧が急激に低下した時に、書き込みを中止することができなく、書き込みが途中で終了しフラッシュメモリ内のデータが異常になってしまうという課題があった。
そこで、本発明は、フラッシュメモリに対するアクセスとアドレス変換処理を並列に実行させることにより、フラッシュメモリにアクセスするときの処理効率を向上させ、さらにフラッシュメモリシステムに与えられる電圧が低下した場合でも、フラッシュメモリのデータが異常になるのを防ぐことができるメモリコントローラ、フラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するため、本発明のメモリコントローラは、ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するメモリコントローラであって、前記フラッシュメモリに対するアクセスを制御するために実行される制御動作を指示する動作命令コードを複数個含むコードセットを複数組記憶しているコードセット記憶手段と、前記コードセット記憶手段に記憶されている前記動作命令コードのアドレスを保持するアドレス保持手段と、前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスを前記アドレス保持手段に設定するコードセット選択手段と、前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行手段と、前記制御動作実行手段が前記動作命令コードに基づいた制御動作を実行する毎に、前記アドレス保持手段に設定されているアドレスを、次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新手段と、を備えることを特徴とする。
このように、前記制御動作実行手段が前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて動作するようにしたので、前記アドレス保持手段に設定されているアドレスを参照することにより、前記制御動作実行手段の動作状況、つまり、前記フラッシュメモリに対するアクセス状況を容易に把握できる。従って、前記制御動作実行手段の制御動作を停止させるような場合は、前記アドレス保持手段に設定されているアドレスに基づいて、制御動作を停止させるタイミングを決めることができる。
又、本発明のメモリコントローラは、前記制御動作実行手段が前記コードセットに基づいた一連の制御動作を実行しているときに、前記アドレス保持手段に設定されているアドレスを変更することにより前記一連の制御動作を終了させる強制終了手段を備えることが好ましい。
つまり、前記制御動作実行手段が前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて動作するようにしたので、前記アドレス保持手段に設定されているアドレスを変更することにより、前記制御動作実行手段の動作を容易に制御することができる。
又、本発明のメモリコントローラは、前記指示情報に基づいて特定されるアクセス対象領域に対応する前記フラッシュメモリ内のブロックの物理ブロックアドレスを求めるアドレス変換手段を備えることが好ましい。
上記目的を達成するため、本発明のフラッシュメモリシステムは、前記メモリコントローラとフラッシュメモリを備えることを特徴とする。
上記目的を達成するため、本発明のフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するために、予め記憶手段に記憶されている複数個の動作命令コード含むコードセットに基づいて一連の制御動作を実行するフラッシュメモリの制御方法であって、前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスをアドレス保持手段に設定するコードセット選択ステップと、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行ステップと、前記制御動作実行ステップで前記動作命令コードに基づいた制御動作が実行される毎に、前記アドレス保持手段に設定されているアドレスを次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新ステップと、を含むことを特徴とする。
このように、制御動作実行ステップで、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて制御動作を実行するようにしたので、前記アドレス保持手段に設定されているアドレスを参照することにより、前記フラッシュメモリに対するアクセス状況を容易に把握できる。従って、前記フラッシュメモリに対するアクセスを停止させるような場合は、前記アドレス保持手段に設定されているアドレスに基づいて、制御動作を停止させるタイミングを決めることができる。
又、本発明のフラッシュメモリの制御方法は、前記アドレス保持手段に設定されているアドレスを変更することにより、前記コードセット選択ステップで選択された前記コードセットに基づいた一連の制御動作を強制的に終了させる強制終了ステップを含むことが好ましい。
つまり、制御動作実行ステップで、前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、読み出した前記動作命令コードに基づいて制御動作を実行するようにしたので、前記アドレス保持手段に設定されているアドレスを変更することにより、前記フラッシュメモリに対するアクセス動作を容易に制御することができる。
本発明によれば、フラッシュメモリに対する読み出しまたは書き込みの処理と、アクセス先の物理アドレスを求めるアドレスの変換処理や空きブロック検索を並列して実行することが可能になる。これにより、フラッシュメモリにアクセスするときの処理効率を向上させることができる。
また、メモリコントローラ内のマイクロプロセッサは、メモリコントローラ内のフラッシュメモリシーケンスブロックの動作状況を容易に把握できると共に、フラッシュメモリシーケンスブロックの動作を中止させたりすることを容易に行うことができる。従って、フラッシュメモリシステムに与えられる電圧が低下した場合、書き込みを中止させることにより、フラッシュメモリのデータが異常になるのを防ぐことができる。
以下、図面に基づき、本発明の実施形態について詳細に説明する。
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
[フラッシュメモリ2の説明]
フラッシュメモリ2は、不揮発性メモリであり、レジスタとメモリセルアレイとから構成される。フラッシュメモリ2は、レジスタとメモリセルアレイとの間でデータの複写を行って、データの書き込みまたは読み出しを行う。
メモリセルアレイは、複数のメモリセル群とワード線とを備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写または選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、2つのゲートは、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
図2は、ブロックとページの関係を示す説明図である。上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、図2(a)に示したような小ブロックのフラッシュメモリと、図2(b)に示したような大ブロックのフラッシュメモリが一般的に使用されている。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。また、本実施形態の大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されている。
大ブロック構成の場合、各ページのユーザ領域には4セクタ分のデータが記憶されるため、1セクタ分の領域をサブページとすれば、各ページは4個のサブページで構成され、各ブロックは256個のサブページで構成されている。また、フラッシュメモリ2内の記憶領域を特定する物理アドレスは、フラッシュメモリ2のブロック(以後、物理ブロックと言う。)を特定する物理ブロックアドレスと、各物理ブロック内のサブページを特定するサブページ番号(0〜255)に基づいて生成される。なお、フラッシュメモリ2に対しては、ページを特定するロウアドレスとページ内の領域を特定するカラムアドレスが、記憶領域を特定するアドレス情報として与えられる。各サブページには、冗長領域を4つに分割した領域が割り当てられる。
一方、小ブロック構成の場合、各ページのユーザ領域には1セクタ分のデータが記憶されるため、サブページはページと同じになる。大ブロック構成と同様にフラッシュメモリ2内の記憶領域を特定する物理アドレスは、フラッシュメモリ2の物理ブロックを特定する物理ブロックアドレスと、各物理ブロック内のページを特定するページ番号(0〜31)に基づいて生成される。同様に、フラッシュメモリ2に対しては、ページを特定するロウアドレスとページ内の領域を特定するカラムアドレスが、記憶領域を特定するアドレス情報として与えられる。
ここで、ユーザ領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロック11によって生成される。
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書き込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。なお、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書き込まれないので、対応論理アドレス情報が書き込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書き込まれていない場合は、消去済ブロックであると判断される。
ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書き込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
[コントローラ3の説明]
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。
ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド(ホストシステム4からフラッシュメモリシステム3に与えられるコマンド)等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
図1に示すワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理等を制御するブロックである。書き込み処理や読み出し処理等を実行するときの一連の制御動作は、ROM12に記憶されている一連の制御動作を指示する情報に基づいて実行される。この一連の制御動作に含まれる各制御動作を指示する情報を、以下、動作命令コードという。又、一連の制御動作に含まれる各制御動作に対応する動作命令コードの集合をコードセットという。
なお、上記動作命令コードには、フラッシュメモリ2に対して制御信号、コマンド、アドレスまたは書き込みデータ等を出力することを指示するものや、分岐条件に基づいた分岐先を指示するものや、フラッシュメモリ2のビジー状態が解除されるのを待つことを指示するもの等がある。また、動作命令コードは、通常は記述されている順番に読み出されるが、分岐先を指示する動作命令コードが含まれている場合は、分岐先を指示する動作命令コードに従って次に読み出す動作命令コードを決定する。
図3は、フラッシュメモリインターフェースブロック10のレジスタ構成を示している図である。物理ブロックアドレスレジスタ21は、フラッシュメモリ2内の物理ブロックを指定するレジスタであり、サブページ番号レジスタ22は、物理ブロック内のサブページを指定するレジスタである。カウンタ23は、読み出すまたは書き込むサブページ数を指定するレジスタである。プログラムカウンタ24は、上記動作命令コードのROM12内でのアドレスを指定するレジスタである。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるECCを生成するとともに、フラッシュメモリ2から読み出したデータに付加されたECCに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。また、上記のコードセットはROM12内に記憶されている。
図4は、コードセットと動作命令コードを説明するための図である。ROM12内のコードセット領域に複数のコードセットが記憶されている。マイクロプロセッサ6が、ホストシステムからの指示情報に含まれる外部コマンドに応じて、ROM12に記憶されている複数のコードセットからフラッシュメモリインターフェースブロック10に与えるコードセットを選択する。
すべてのコードセットは、分岐命令を含んでおり、最後にコードセット領域の最終動作命令コードに分岐してコードセットに対応する一連の制御動作が終了する。このように、すべてのコードセットは最後に同じ動作命令コードに分岐して、つまり、同じアドレスに分岐して終了する。本実施形態では、最終動作命令コードはマイクロプロセッサ6に割り込みを発生させる動作を行い、フラッシュメモリ2とのアクセスが終了したことをマイクロプロセッサ6に知らせている。
[アドレス変換処理の説明]
本実施形態に係るフラッシュメモリシステム1では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割り当てている。
図5は、アドレス変換処理を説明するための説明図である。本図を用いて、アドレス変換処理について具体的に説明する。
ホストシステム側の論理アドレス空間は、図5(a)に示したようにセクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。また、図5(b)に示したように論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれた論理ブロックの各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。一方、図5(c)に示したように、物理ブロックには、それぞれ固有の物理ブロックアドレス(PBA)が割り当てられている。さらに、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに付けた通番を物理ゾーン番号(PZN)と呼んでいる。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。
また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。したがって、1個の論理ブロックに含まれるセクタ数は、1個の物理ブロックに含まれるセクタ領域の個数に応じて設定される。但し、1個の論理ブロックを複数個の物理ブロックに割り当てる場合には、その複数個の物理ブロックを1個の物理ブロックとみなして1個の論理ブロックに含まれるセクタ数を設定する。
図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セクタの領域に対応している。
また、LBN#0〜#499の500個の論理ブロックで構成されたLZN#0の論理ゾーンは、PBA#0〜#511の512個の物理ブロックで構成されたPZN#0の物理ゾーンに割り当てられている。以下同様に、LZN#1の論理ゾーンは、PZN#1の物理ゾーンに割り当てられ、LZN#2の論理ゾーンは、PZN#2の物理ゾーンに割り当てられ、LZN#3の論理ゾーンは、PZN#3の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データと旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。
また、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがLBAの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することにより、ホストシステム4から与えられるLBAとフラッシュメモリ2内のアクセス領域の対応関係を管理することができる。
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。論理ブロックに対応する物理ブロックがアドレス変換テーブルに存在しない場合、およびデータが書き込まれているページを書き換える場合、消去済みブロック(又は有効なデータが記憶されていない物理ブロック)を検索する必要がある。このため、アドレス変換テーブルと共に消去済みブロックを検索するためのテーブル(以下、空きブロック検索テーブル)が作成される。
このアドレス変換テーブルは、物理ブロックの先頭ページの冗長領域に書き込まれる論理ブロックを示す情報(以下、論理アドレス情報という)に基づいて作成される。冗長領域に書き込まれる論理アドレス情報としては,LBN等の論理ブロックを特定することができる情報が用いられる。なお、論理ゾーンと物理ゾーンとの対応関係は予め設定されている場合は、LZIBNに基づいて論理ブロックを特定することができるので、アドレス変換テーブルを作成することができるので、LBNよりデータ量の少ないLZIBNを用いることが好ましい。
また、データが書き込まれていない物理ブロックには、論理アドレス情報が格納されていない。従って、論理アドレス情報が格納されていない場合は、消去済みブロックであると判断される。
[フラッシュメモリに対するアクセスの説明]
次に、ホストシステム4から指示情報が与えられた場合の処理について説明する。
ホストシステム4がフラッシュメモリ2に対して、読み出しまたは書き込みを実行する場合、読み出し及び書き込み等の外部コマンドと共に、アクセスの対象領域に関する情報が供給される。このアクセスの対象領域は、セクタ単位の論理アドレス(例えば、LBA)とセクタ数で指定される。ここで、ホストシステム4から供給される論理アドレスは、アクセスの対象の先頭アドレスを示し、ホストシステム4から供給されるセクタ数は、先頭アドレスから何セクタ分の領域がアクセスの対象であるかを示している。
ここで、ホストシステム4から指示されるアクセス領域が、複数の論理ブロックに跨っている場合、論理ブロック毎に論理ブロックから物理ブロックへの変換処理を行わなければならない。そのため、ホストシステム4からの指示情報は、論理ブロックごとのグループに分割され、グループ毎にフラッシュメモリ2に対するアクセスが行われる。
つまり、マイクロプロセッサ6は、グループに分割された各指示情報に対応する一連の制御動作を実行させるための情報を、フラッシュメモリインターフェースブロック10の物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタ24に設定された情報に基づいて一連の制御動作を実行する。
ホストシステム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に示した一連の制御動作を開始する。
プログラムカウンタ24に動作命令コードに設定した後、S61に戻り、ホストシステム4から与えられる指示情報に基づくアクセス対象領域が更にあれば、そのアクセス対象領域が含まれる論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)が求める。
このように、マイクロプロセッサ6はフラッシュメモリインターフェースブロック10がフラッシュメモリ2にアクセスをしている間にアドレス変換処理を行う。これにより、アドレス変換処理とフラッシュメモリ2とのアクセスが並列に行われることになる。
次に、フラッシュメモリインターフェースブロック10が実行する一連の制御動作について説明する。フラッシュメモリインターフェースブロック10は、プログラムカウンタ24に設定されているアドレスから動作命令コードを読み出し、動作命令コードに対応した制御動作を実行する。制御動作が終了する毎に、プログラムカウンタ24に設定されているアドレスが1ステップ進められる。又、分岐する場合は、分岐先のアドレスがプログラムカウンタ24に設定される。図7は、読み出し処理又は書き込み処理のときに、フラッシュメモリインターフェースブロック10が実行する一連の制御動作を示すフローチャートである。これらの制御動作は、ROM12から読み出した各動作命令コードに基づいて実行される。又、各制御動作は、1つ又は複数の各動作命令コードに基づいて実行される。
(S71)フラッシュメモリ2にコマンドとアドレスを供給しデータを送受信する。例えば、読み出し処理の場合、まず、フラッシュメモリ2に読み出しを指示する内部コマンド(リードコマンド)を供給する。続いて、読み出すデータが記憶されているページを指定するロウアドレスと、ページ内の読み出し開始位置(0バイト〜2111バイト)を指定するカラムアドレスとをフラッシュメモリ2に供給する。先頭サブページからデータを読み出す場合には、カラムアドレスで先頭のサブページに対応するアドレスを指定する。ここで、フラッシュメモリ2はメモリセルアレイからレジスタへのデータの読み出し(複写)を実行するためビジー状態になる。フラッシュメモリ2のビジー状態が解除された後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、フラッシュメモリ2内のレジスタから先頭のサブページに対応するデータを読み出す。
次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と先頭のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、フラッシュメモリ2内のレジスタから先頭のサブページに対応するECCを読み出す。
ここで、読み出しを指示する内部コマンド(リードコマンド)は、各ページから最初にデータを読み出すときにだけ供給される。例えば、先頭のサブページ(ECCを含む)からデータを読み出した後、そのページ内の2番目のサブページからデータを読み出す場合は、上記と同様にページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と2番目のサブページに対応するカラムアドレスを供給する。
尚、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番目のサブページに対応するアドレスになる。
一方、書き込み処理の場合は、フラッシュメモリ2内のレジスタへのデータ転送を指示する内部コマンド(インプットコマンド)、ロウアドレス及びカラムアドレスをフラッシュメモリ2に供給する。続いて、フラッシュメモリ2のライトイネーブル端子にハイレベルとローレベルの信号を交互に入力し、この信号に合わせて1セクタ分のデータをフラッシュメモリ2に供給する。次に、カラムアドレスの変更を指示する内部コマンド(ランダムインプットコマンド)と、ECC等の付加データを書き込む冗長領域の位置を指定するカラムアドレスをフラッシュメモリ2に供給する。続いて、フラッシュメモリ2のライトイネーブル端子にハイレベルとローレベルの信号を交互に入力し、この信号に合わせてECC等の付加データをフラッシュメモリ2に供給する。
ここで、データ転送を指示する内部コマンド(インプットコマンド)は、各ページに書き込みデータを最初に転送するときにだけ供給される。例えば、先頭のサブページに書き込むデータ(付加データも含む)を転送した後、そのページ内の2番目のサブページに書き込むデータを転送する場合は、上記と同様にカラムアドレスの変更を指示する内部コマンド(ランダムインプットコマンド)と2番目のサブページに対応するカラムアドレスを供給する。
又、フラッシュメモリ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のときに最終動作命令コードに分岐し、割り込みを発生させる。
図8は、本発明の実施形態における論理アドレス空間、物理アドレス空間の一例を示す図である。本図を用いて、本発明のアクセス処理を具体的に説明する。
ホストシステム4からの指示情報がLBA#510から4セクタの読み出し処理(1)の場合について説明する。読み出し処理(1)は、2つの論理ブロックに跨っているため、LBA#510から2セクタの読み出し処理(1')とLBA#512から2セクタの読み出し処理(1")にグループ化される。
S61で、マイクロプロセッサ6は、読み出し処理(1')のアクセスのためのアドレス変換処理を行う。図8(b)に示したように、読み出し処理(1')のアクセス対象領域であるLBA#510〜#511は、LBN#1に含まれる。従って、LBN#1の論理ブロックに対応する物理ブロックの物理ブロックアドレス(PBA)を、アドレス変換テーブル参照して求める。図8(c)に示したように、LBN#1の論理ブロックがPBA#4の物理ブロックに対応する場合は、このアドレス変換処理により求められる物理ブロックアドレス(PBA)はPBA#4になる。尚、アドレス変換テーブルは、各物理ゾーンに含まれる物理ブロックの冗長領域から論理アドレス情報を読み出すこととによってゾーン毎に作成することができる。アドレス変換テーブルは、起動時又はアクセス前に作成する。
S63で、ホストシステム4から与えられた読み出しコマンド(外部コマンド)に対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタに設定された情報に基づいて読み出し処理(1')に対応した一連の制御動作を開始する。
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になる。
フラッシュメモリインターフェースブロック10が一連の制御動作を実行している場合は、その一連の制御動作が終了するのを待ち、一連の制御動作が終了したことを確認した後、S62で、物理ブロックアドレスレジスタ21に1を設定する。また、読み出し処理(1")のアクセス対象領域の先頭のセクタはLBA#512であり、2進数で"10 0000 0000"なので、下位8ビットは、2進数で"0000 0000"(10進数で0)になる。従って、サブページ番号レジスタ22に0を設定する。また、読み出し処理(1")のアクセス対象領域に含まれるセクタ数は2なので、カウンタ23に2を設定する。
S63で、ホストシステムから与えられた読み出しコマンド(外部コマンド)に対応したコードセットの先頭動作命令コードのアドレスをプログラムカウンタ24に設定する。フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタ21、サブページ番号レジスタ22、カウンタ23及びプログラムカウンタに設定された情報に基づいて読み出し処理(1")に対応した一連の制御動作を開始する。
次に、フラッシュメモリインターフェースブロック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に供給する。
フラッシュメモリ2のビジー状態が解除された後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力して、3番目のサブページに対応する1セクタのデータを読み出す。次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と3番目のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、3番目のサブページに対応するECCを読み出す。
S72で、サブページ番号レジスタ22に設定されている値を254(2進数で1111 1110)から255(2進数で1111 1111)に変更し、カウンタ23に設定されている値を2から1に変更する。
カウンタ23に設定されている値が1なのでS71に戻る(S73)。ここで、サブページ番号レジスタ22に設定されている255(2進数で1111 1111)の下位側2ビットは11(10進数で3)なので、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と4番目のサブページのカラムアドレスをフラッシュメモリ2に供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、4番目のサブページに対応する1セクタのデータを読み出す。次に、ページ内の読み出し開始位置の変更を指示する内部コマンド(ランダムリードコマンド)と4番目のサブページに対応するECCが記憶されている位置を指定するカラムアドレスを供給する。この後、フラッシュメモリ2のリードイネーブル端子にハイレベルとローレベルの信号を交互に入力し、4番目のサブページに対応するECCを読み出す。
S72で、サブページ番号レジスタ22に設定されている値を255(2進数で1111 1111)から0(2進数で0000 0000)に変更し、カウンタ23に設定されている値を1から0に変更する。
カウンタ23に設定されている値が0なのでS74に進み(S73)、マイクロプロセッサ6に一連の制御動作が終了したことを通知する割り込みを発生させる。
以上で説明したように、本発明のフラッシュメモリシステム1では、読み出し処理又は書き込み処理と、アドレス変換処理が並列に実行できる。
更に、本発明のフラッシュメモリシステム1では、フラッシュメモリシーケンスブロック10の動作状況を容易に把握できると共に、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を中止させたりすることを容易に行うことができる。
つまり、本発明のフラッシュメモリシステムでは、フラッシュメモリシーケンスブロック10がプログラムカウンタ24に設定されるアドレスに従ってROM12から動作命令コードを読み出し、読み出した動作命令コードに基づいて制御動作を実行するため、プログラムカウンタ24に設定されるアドレスを参照することにより、フラッシュメモリシーケンスブロック10が実行している制御動作を把握することができる。
又、フラッシュメモリシーケンスブロック10が一連の制御動作を実行しているときに、フラッシュメモリシステム1に供給されている電圧が所定の電圧値よりも低くなった場合やホストシステムから新たな指示情報が与えられた場合に、プログラムカウンタ24に設定されるアドレスを最終動作命令コードに対応するアドレスに変更することにより、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を強制的に終了させることができる。尚、フラッシュメモリシーケンスブロック10が実行している一連の制御動作を強制的に終了させる場合は、不完全なデータがフラッシュメモリ2に書き込まれる等の不具合が発生することがないタイミングで終了させることが好ましい。例えば、電圧が低下したときに、書き込みデータがフラッシュメモリ2内のレジスタに保持されていても、レジスタからメモリセルアレイへの書き込み(複写)を実行せず制御動作を強制的に終了させることが好ましい。
なお、本実施形態は大ブロックのフラッシュメモリについて説明してきたが、小ブロックのフラッシュメモリについても同様に適用可能である。
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。 ブロックとページの関係を示す説明図である。 本発明の実施形態のフラッシュメモリインターフェースブロックのレジスタ構成を示している図である。 コードセットと動作命令コードを説明するための図である。 アドレス変換処理を説明するための説明図である。 マイクロプロセッサがフラッシュメモリインターフェースブロックに行う処理を示すフローチャートである。 フラッシュメモリインターフェースブロックが行う処理を示すフローチャートである。 本発明の実施形態における論理アドレス空間、物理アドレス空間の一例を示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
21 物理ブロックアドレスレジスタ
22 サブページ番号レジスタ
23 カウンタ
24 プログラムカウンタ

Claims (6)

  1. ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記フラッシュメモリに対するアクセスを制御するために実行される制御動作を指示する動作命令コードを複数個含むコードセットを複数組記憶しているコードセット記憶手段と、
    前記コードセット記憶手段に記憶されている前記動作命令コードのアドレスを保持するアドレス保持手段と、
    前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスを前記アドレス保持手段に設定するコードセット選択手段と、
    前記アドレス保持手段に設定されているアドレスに従って前記コードセット記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行手段と、
    前記制御動作実行手段が前記動作命令コードに基づいた制御動作を実行する毎に、前記アドレス保持手段に設定されているアドレスを、次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新手段と、
    を備えることを特徴とするメモリコントローラ。
  2. 前記制御動作実行手段が前記コードセットに基づいた一連の制御動作を実行しているときに、前記アドレス保持手段に設定されているアドレスを変更することにより前記一連の制御動作を終了させる強制終了手段を備えることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記指示情報に基づいて特定されるアクセス対象領域に対応する前記フラッシュメモリ内のブロックの物理ブロックアドレスを求めるアドレス変換手段を備えることを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 請求項1から3のいずれか1項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  5. ホストシステムから与えられる指示情報に応じて、ブロック単位で記憶データの消去を実行するフラッシュメモリに対するアクセスを制御するために、予め記憶手段に記憶されている複数個の動作命令コード含むコードセットに基づいて一連の制御動作を実行するフラッシュメモリの制御方法であって、
    前記指示情報が与えられたときに、該指示情報に含まれる外部コマンドに対応する前記コードセットを選択し、該コードセットに含まれる前記動作命令コードのアドレスをアドレス保持手段に設定するコードセット選択ステップと、
    前記アドレス保持手段に設定されているアドレスに従って前記記憶手段から前記動作命令コードを読み出し、該動作命令コードに基づいた制御動作を実行する制御動作実行ステップと、
    前記制御動作実行ステップで前記動作命令コードに基づいた制御動作が実行される毎に、前記アドレス保持手段に設定されているアドレスを次に実行すべき制御動作に対応する前記動作命令コードのアドレスに変更するアドレス更新ステップと、
    を含むことを特徴とするフラッシュメモリの制御方法。
  6. 前記アドレス保持手段に設定されているアドレスを変更することにより、前記コードセット選択ステップで選択された前記コードセットに基づいた一連の制御動作を強制的に終了させる強制終了ステップを含むことを特徴とする請求項5に記載のフラッシュメモリの制御方法。
JP2006256937A 2006-09-22 2006-09-22 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Active JP4661748B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006256937A JP4661748B2 (ja) 2006-09-22 2006-09-22 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006256937A JP4661748B2 (ja) 2006-09-22 2006-09-22 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2008077468A true JP2008077468A (ja) 2008-04-03
JP4661748B2 JP4661748B2 (ja) 2011-03-30

Family

ID=39349442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006256937A Active JP4661748B2 (ja) 2006-09-22 2006-09-22 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4661748B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法
US8359425B2 (en) 2010-07-09 2013-01-22 Kabushiki Kaisha Toshiba Memory control device, memory device, and shutdown control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH1063442A (ja) * 1996-08-22 1998-03-06 Toshiba Corp 半導体ディスク装置
JP2000293427A (ja) * 1999-04-05 2000-10-20 Mitsubishi Electric Corp フラッシュメモリを搭載する記憶装置
JP2006155335A (ja) * 2004-11-30 2006-06-15 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH1063442A (ja) * 1996-08-22 1998-03-06 Toshiba Corp 半導体ディスク装置
JP2000293427A (ja) * 1999-04-05 2000-10-20 Mitsubishi Electric Corp フラッシュメモリを搭載する記憶装置
JP2006155335A (ja) * 2004-11-30 2006-06-15 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359425B2 (en) 2010-07-09 2013-01-22 Kabushiki Kaisha Toshiba Memory control device, memory device, and shutdown control method
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法

Also Published As

Publication number Publication date
JP4661748B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4501881B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4513786B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4304167B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4213166B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4497124B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4245594B2 (ja) メモリコントローラ及びフラッシュメモリシステム

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