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

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

Info

Publication number
JP4697146B2
JP4697146B2 JP2007009970A JP2007009970A JP4697146B2 JP 4697146 B2 JP4697146 B2 JP 4697146B2 JP 2007009970 A JP2007009970 A JP 2007009970A JP 2007009970 A JP2007009970 A JP 2007009970A JP 4697146 B2 JP4697146 B2 JP 4697146B2
Authority
JP
Japan
Prior art keywords
data
flash memory
host system
preparation
signal indicating
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.)
Expired - Fee Related
Application number
JP2007009970A
Other languages
English (en)
Other versions
JP2008176606A (ja
Inventor
健雄 菊池
資尚 小林
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 JP2007009970A priority Critical patent/JP4697146B2/ja
Publication of JP2008176606A publication Critical patent/JP2008176606A/ja
Application granted granted Critical
Publication of JP4697146B2 publication Critical patent/JP4697146B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
近年、不揮発性の記憶媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。そして、このような情報機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。そのため、集積度に優れ、大容量化が容易なNAND型フラッシュメモリが注目されている。
NAND型フラッシュメモリは、メモリセルを消去状態(論理値=1)から書込状態(論理値=0)に変化させる場合には、メモリセル単位で行なうことができる。しかし、メモリセルを書込状態(論理値=0)から消去状態(論理値=1)に変化させる場合には、複数のメモリセルからなる所定の消去単位(ブロック単位)でしか行なうことができない。データの読み出し及び書き込みはページ単位で行われ、消去単位であるブロックは複数のページで構成されている。
NAND型フラッシュメモリのページは、磁気ディスク装置における1又は複数のセクタに対応している。従って、NAND型フラッシュメモリを用いたメモリシステムは、従来の磁気ディスク装置を置換える用途に使用されることが多くなっている。このような理由により、NAND型フラッシュメモリを用いたメモリシステムのインターフェースには、通常、磁気ディスク装置で用いられているATA(AT Attachment)が採用されている。
ATAに準拠したインターフェース(以下、ATAインターフェースと言う)は、図7のようにコマンドレジスタ15a、セクタカウントレジスタ15b、LBA(Logical Block Address)レジスタ15c、データレジスタ15d及びステータスレジスタ15e等のATAレジスタ15を備えている。このATAレジスタ15に対して書き込み又は読み出しを行なうことにより、ATAインターフェースに接続された周辺機器に対するアクセスが行なわれる。従って、周辺機器が記憶媒体としてフラッシュメモリを用いたフラッシュメモリシステムの場合も、ホストシステム側からフラッシュメモリシステムにアクセスするときには、ATAレジスタ15にコマンド、アドレス等の指示情報を設定することによりアクセスが行なわれる。
例えば、ホストシステム側からフラッシュメモリシステムに対して、読み出し若しくは書き込みを実行する場合、ホストシステム側から、読み出し若しくは書き込みを実行するセクタの先頭アドレスがLBAレジスタ15cに設定され、読み出すセクタ数若しくは書き込むセクタ数がセクタカウントレジスタ15bに設定され、読み出し若しく書き込みのコマンドは、コマンドレジスタ15aに設定される。この設定に基づいて、書き込みの場合は、フラッシュメモリにデータが書き込まれ、読み出しの場合は、フラッシュメモリからデータが読み出される。
また、ホストシステムは、ATAインターフェースに接続された周辺機器の状態を、ステータスレジスタ15eに設定されている情報に基づいて知ることができる。つまり、ATAインターフェースに接続された周辺機器の状態を知りたいときは、下記特許文献1にも開示されているように、ステータスレジスタ15eに設定されている情報(以下、ステータス情報と言う。)が読み出される。この、ステータスレジスタ15eの各ビットには所定の情報が割り当てられている。従って、ステータスレジスタ15eから読み出されたステータス情報の各ビットの論理値に基づいて、周辺機器の状態を判断することができる。
特開2005−71560号公報
しかしながら、ステータスレジスタ15eから読み出されたステータス情報からは、ステータスレジスタ15eの各ビットに割り当てられている情報だけしか知ることができない。従って、ATAインターフェースに接続されたフラッシュメモリシステムでは、フラッシュメモリ内の不良ブロック数、空きブロック数等の内部状態を示す情報(以下、内部情報と言う)を取得することができかった。
そこで、本発明は、ATAインターフェースに接続されたフラッシュメモリシステムの内部情報を、ホストシステム側から取得するのに好適なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明によるメモリコントローラは、ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、前記フラッシュメモリに書き込む書き込みデータ又は前記フラッシュメモリから読み出した読み出しデータを1又は複数セクタ単位で保持するデータ保持手段と、前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知手段と、前記データ保持手段に保持されているデータを、前記ホストシステムに転送するデータ転送手段と、前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを前記データ保持手段に書き込むデータ設定手段とを備え、前記通知手段は、前記ホストシステムに転送可能な前記読み出しデータが前記データ保持手段に保持されたとき、又は前記情報設定手段による前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記データ保持手段に転送可能なデータが保持されていることを通知することを特徴とする。
前記内部情報は、前記フラッシュメモリ内の不良ブロック数および空きブロック数であることが好ましい。
上記目的を達成するために、本発明によるフラッシュメモリシステムは、前記メモリコントローラのいずれか1つとフラッシュメモリを備えている。
上記目的を達成するために、本発明によるフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを、前記フラッシュメモリに書き込むデータ又は前記フラッシュメモリから読み出したデータを1又は複数セクタ単位で保持するデータ保持手段に書き込むデータ設定ステップと、前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知ステップと、前記データ保持手段に保持されている前記内部情報データを、前記ホストシステムに転送するデータ転送ステップとを含むことを特徴とする。
本発明によれば、ATAインターフェースに接続されたフラッシュメモリシステムで、ホストシステム側から要求されるフラッシュメモリシステム内の内部情報を、ホストシステム側に効率的に転送することができる。又、ホストシステムは、フラッシュメモリに記憶されているデータを読み出すときと同様の動作で内部情報を取得することができる。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、NAND型フラッシュメモリであるフラッシュメモリ2と、それを制御するコントローラ3で構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルアレイとの間でデータの書き込み又は読み出しを行なう。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの書き込み又は読み出しが行われる。
メモリセルアレイを構成するメモリセルは、コントロールゲートとフローティングゲートを備えており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。ここで、消去状態が論理値「1」に対応し、書き込み状態が論理値「0」に対応している。
NAND型フラッシュメモリであるフラッシュメモリ2の構造を図2に示す。フラッシュメモリ2は、「ページ」及び「ブロック(物理ブロック)」で構成されている。
ページは、フラッシュメモリ2にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ2にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
上記物理ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、図2(a)に示したような小ブロックのフラッシュメモリと、図2(b)に示したような大ブロックのフラッシュメモリが一般的に使用されている。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイト(1セクタ)のユーザ領域25と16バイトの冗長領域26で構成されている。また、大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイト(4セクタ)のユーザ領域25と64バイトの冗長領域26で構成されている。
ここで、ユーザ領域25は、ホストシステム4から供給されるユーザデータを記憶するための領域である。
また、冗長領域26は、誤り訂正符号、論理アドレス情報、ブロックステータス等の付加データを記憶するための領域である。
誤り訂正符号は、ユーザ領域25に記憶されているユーザデータに含まれる誤りを検出し、訂正するためのデータである。
論理アドレス情報は、物理ブロックに有効なユーザデータが記憶されている場合に、そのユーザデータに対応する論理ブロックを特定するために用いられる情報である。論理ブロックは、ホストシステム4側のアドレス空間におけるセクタを複数個まとめたものであり、この論理ブロックと物理ブロックの対応関係を管理することにより、ホストシステム4で管理されている論理アドレスとフラッシュメモリ2内の物理アドレスの対応関係を管理している。尚、ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。ホストシステム4は、このLBAでフラッシュメモリ2内のアクセス領域を指定する。
物理ブロックに有効なユーザデータが記憶されていない場合、その物理ブロックの冗長領域26には、冗長領域26に、論理アドレス情報が書き込まれていない。従って、冗長領域26に論理アドレス情報が書き込まれているか否かで、その物理ブロックが空きブロック(消去済ブロック)であるか否かを判断することができる。つまり、論理アドレス情報が書き込まれていない場合は、空きブロック(消去済ブロック)であると判断される。
ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書き込み等を行なうことができない物理ブロック)であるか否かを示す情報であり、この情報に基づいて不良ブロックであるか否かが識別される。従って、不良ブロックであると判断された物理ブロックの冗長領域26には、不良ブロックであることを示す情報がブロックステータスとして設定される。
このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し、書き込み、消去等の各動作を実行する。
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(Error Correcting Code)ブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセット(シーケンスコマンド)をROM12から読み出してフラッシュメモリインターフェースブロック10に供給し、フラッシュメモリインターフェースブロック10に処理を実行させる。
ホストインターフェースブロック7は、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
ワークエリア8は、フラッシュメモリ2の制御等に必要なデータが一時的に記憶される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。ワークエリア8には、例えば、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル、空きブロックを検索する空きブロック検索テーブルなどが記憶される。
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを1セクタ単位又は複数セクタ単位で一時的に保持する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理を制御するブロックである。書き込み処理や読み出し処理を実行するときの一連の制御動作は、ROM12に記憶されている一連の制御動作を指示するシーケンスコマンドに基づいて実行される。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、フラッシュメモリ2から読み出したデータに付加された誤り訂正符号(ECC)に基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6によって実行される処理の手順を定義するプログラム等を格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
次にフラッシュメモリの記憶領域の管理方法について説明する。フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。
図3は、フラッシュメモリ2の記憶領域を複数のゾーン(物理ゾーン)に分割して管理する場合の一例である。記憶データの消去単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれ物理ゾーン番号(PZN)が割り当てられる。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。図3の例では、物理ブロックには#0から連続するPBAが割り当てられており、PBA#0〜#1023の計1024個の物理ブロックがPZN#0の物理ゾーンに含まれ、PBA#1024〜#2047の計1024個の物理ブロックがPZN#1の物理ゾーンに含まれ、PBA#2048〜#3071の計1024個の物理ブロックがPZN#2の物理ゾーンに含まれる。
一方、ホストシステム4側のアドレス空間も複数のゾーン(論理ゾーン)に分割され、1つの論理ゾーンに対して1つの物理ゾーンが割り当てられる。論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。尚、論理ゾーンに含まれる論理ブロックの数は、物理ゾーンに含まれる物理ブロックの数よりも少なくなるように設定される。例えば、1000個の論理ブロックを含む論理ゾーンを、1024個の物理ブロックを含む物理ゾーンに割り当てる。このように、論理ゾーンに含まれる論理ブロックの数を、物理ゾーンに含まれる物理ブロックの数よりも少なくするのは、先天性の不良ブロックの数、及び後天的に不良化するブロックの数を考慮したものである。
又、データが書き込まれた物理ブロックの冗長領域には、書き込んだデータに対応する論理アドレス情報が書き込まれる。この論理アドレス情報は、論理ブロックに付けた通番である論理ブロック番号(LBN)であっても、各論理ゾーンに含まれる論理ブロックの各論理ゾーン内での通番である論理ゾーン内ブロック番号(LZIBN)であってもよい。
次にホストシステム4側からフラッシュメモリ2の内部状態を示す情報(内部情報)を取得する手順を説明する。以下の説明では、内部情報として、図4に示したような物理ゾーン毎の不良ブロック数と空きブロック数を取得するものとする。以下、メモリコントローラ3によって物理ゾーン毎の不良ブロック数と空きブロック数に関する情報が作成され、ホストシステム4側から作成された情報が読み出されるまで(ホストシステム4側に作成された情報が転送されるまで)を、図4から図6を参照して説明する。
尚、本実施形態では、物理ゾーン毎の不良ブロック数と空きブロック数を取得するためのコマンドに対して、ATA規格では動作が規定されていないコマンドコードを割り当てている。このようなATA規格に規定されていないベンダーユニークな特殊コマンドは、ベンダーコマンドと呼ばれている。以下の説明で、物理ゾーン毎の不良ブロック数と空きブロック数を取得するためのベンダーコマンドを内部情報取得コマンドと言う。
図5を参照して、本発明の第1の実施形態における内部情報の作成及び作成された内部情報のホストシステム4側からの読み出し(ホストシステム4側への転送)について説明する。第1の実施形態では、まず、ホストシステム4により、メモリコントローラ3内のコマンドレジスタ(図7に示したATAレジスタ15のコマンドレジスタ15a)に内部情報取得コマンドのコマンドコードが書き込まれる。メモリコントローラ3は、この内部情報取得コマンドに応答して物理ゾーン毎の不良ブロック数と空きブロック数に関する情報の作成を開始する。この作成処理では、各物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報が順次読み出し、読み出したブロックステータスと論理アドレス情報に基づいて物理ゾーン毎の不良ブロック数と空きブロック数をカウントする。
最初に、PBA#0〜#1023の物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を順次読み出し、PZN#0の物理ゾーンの不良ブロック数と空きブロック数をカウントする。ここで、不良ブロック数については、ブロックステータスとして不良ブロックであることを示す情報が書き込まれている物理ブロックの数がカウントされる。空きブロック数については、ブロックステータスとして不良ブロックであることを示す情報が書き込まれておらず、かつ、論理アドレス情報が書き込まれていない物理ブロックの数がカウントされる。PZN#0の物理ゾーンの不良ブロック数と空きブロック数のカウントが終了すると、PZN#0の物理ゾーンの不良ブロック数と空きブロック数がバッファ9に書き込まれる。
次に、PBA#1024〜#2047の物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を順次読み出し、PZN#1の物理ゾーンの不良ブロック数と空きブロック数をカウントする。PZN#1の物理ゾーンの不良ブロック数と空きブロック数のカウントが終了すると、PZN#1の物理ゾーンの不良ブロック数と空きブロック数がバッファ9に書き込まれる。このようにして、PZN#0〜#7の物理ゾーンの不良ブロック数と空きブロック数がカウントされ、この物理ゾーン毎の不良ブロック数と空きブロック数が内部情報としてバッファ9に書き込まれる。物理ゾーン毎の不良ブロック数と空きブロック数をカウントするときは、物理ゾーン毎の不良ブロック数と空きブロック数を書き込む領域をバッファ9上に割り当て、割り当てられた領域に初期値として「0」を書き込み、不良ブロック又は空きブロックが検出されたときにそれらの領域に書き込まれている値を1ずつ増加させていってもよい。例えば、PZN#1の物理ゾーンに含まれる不良ブロックが検出されたときに、PZN#1の物理ゾーンの不良ブロック数を書き込む領域に「3」が書き込まれていた場合は、その値を「4」に書き換える。
次に、バッファ9に書き込まれた内部情報(物理ゾーン毎の不良ブロック数と空きブロック数に関する情報)のホストシステム4側からの読み出し(ホストシステム4側への転送)について説明する。
バッファ9に全ての内部情報が書き込まれたときに、メモリコントローラ3はホストシステム4に対して、その旨を通知する。この通知には、メモリコントローラ3のレディ・ビジー(R/B)端子から出力される信号が用いられる。つまり、レディ・ビジー(R/B)端子から出力される信号のレベル(ハイレベル又はローレベル)で、レディ状態又はビジー状態を示している(以下、レディ状態を示す信号をレディ信号と言い、ビジー状態を示す信号をビジー信号と言う)。例えば、ハイレベルをレディ状態に、ローレベルをビジー状態に設定した場合、バッファ9に対する内部情報の書き込みが終了するまでは、レディ・ビジー(R/B)端子からローレベル(ビジー信号)を出力し、バッファ9に対する内部情報の書き込みが終了したときにレディ・ビジー(R/B)端子からハイレベル(レディ信号)を出力する。
尚、ホストシステム4に対して、バッファ9に全ての内部情報が書き込まれたことを通知する方法は、割り込み信号を出力したり、ステータスレジスタ15e内の特定のビットの論理値を書き換えたりする方法であってもよい。
メモリコントローラ3がホストシステム4に対して、バッファ9に全ての内部情報が書き込まれたことを通知すると、ホストシステム4はメモリコントローラ3のリードイネーブル(RE)端子にハイレベルとローレベルの信号を交互に入力する。メモリコントローラ3は、リードイネーブル(RE)端子に入力される信号のレベルが遷移するタイミング(ハイレベルからローレベル、又はローレベルからハイレベルに遷移するタイミング)でバッファ9に書き込まれた内部情報をデータレジスタ15dに転送する。ここで、データレジスタ15dのビット数が8ビットの場合は1バイト単位で、データレジスタ15dのビット数が16ビットの場合は2バイト単位で、バッファ9に書き込まれた内部情報が転送される。一方、ホストシステム4は、リードイネーブル(RE)端子にハイレベルとローレベルの信号を交互に入力すると共に、データレジスタ15dに保持されている情報を読み出す。
このようにして、バッファ9に書き込まれた内部情報はデータレジスタ15dに転送され、ホストシステム4によって読み出される。バッファ9に書き込まれた全ての内部情報がデータレジスタ15dにされたときに、メモリコントローラ3はレディ・ビジー(R/B)端子からビジー信号を出力し、ホストシステム4は、リードイネーブル(RE)端子への信号の入力と、データレジスタ15dに保持されている情報の読み出しを終了する。
次に、図6を参照して、本発明の第2の実施形態における内部情報の作成及び作成された内部情報のホストシステム4側からの読み出し(ホストシステム4側への転送)について説明する。第2の実施形態の場合には、ホストシステム4から内部情報取得コマンドが与えられたときに不良ブロック数と空きブロック数のカウントを開始するのではなく、アドレス変換テーブルと空きブロックテーブルを作成するときに、並行して不良ブロック数と空きブロック数のカウントを行い、物理ゾーン毎の不良ブロック数と空きブロック数をワークエリア8内に保持しておく。
その後、ホストシステム4から内部情報取得コマンドが与えられたときに、メモリコントローラ3は、ワークエリア8内に保持されている内部情報(物理ゾーン毎の不良ブロック数と空きブロック数に関する情報)をバッファ9に書き込み、レディ・ビジー(R/B)端子からレディ信号を出力する。この後、第1の実施形態の場合と同様に、バッファ9に書き込まれた内部情報はデータレジスタ15dに転送され、ホストシステム4によって読み出される。尚、アドレス変換テーブルと空きブロックテーブルを作成するときに、並行して不良ブロック数と空きブロック数のカウントをするの、アドレス変換テーブルと空きブロックテーブルを作成するときに、各物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を読み出すからである。
ここで、アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を示したテーブルであり、空きブロックテーブルは空きブロックの物理ブロックアドレス(PBA)を示したテーブルである。このアドレス変換テーブルと空きブロックテーブルは、論理ゾーン毎に作成することができる。従って、アクセスされなかった論理ゾーンについては、アドレス変換テーブルと空きブロックテーブルが作成されない場合がある。従って、そのような場合は、ホストシステム4から内部情報取得コマンドが与えられたときに、アドレス変換テーブルと空きブロックテーブルが作成されない論理ゾーンに対応する物理ゾーンについてだけ、不良ブロック数と空きブロック数のカウントを行なう。
この実施形態の場合、内部情報がワークエリア8内に保持されているため、第1の実施形態のようにホストシステム4から、内部情報取得コマンドを与えられたときに、不良ブロック数と空きブロック数をカウントする必要がなくなり、内部情報取得コマンドに対して速く応答できるという利点を有している。
ただし、この実施形態の場合、空きブロック数および不良ブロック数は随時変化していくため、変化する毎に内部情報を更新する必要がある。例えば、空きブロックにユーザデータが書き込まれた場合は、対応する物理ゾーンの空きブロック数をデクリメントし(1つ減らし)、逆にユーザデータが書き込まれていたブロックが消去され空きブロックになった場合は、対応する物理ゾーンの空きブロック数をインクリメントする(1つ増やす)。不良ブロックの場合も同様に、新たな不良ブロックが発生した場合、対応する物理ゾーンの不良ブロック数をインクリメントする(1つ増やす)。
以上のように、本発明では、ホストシステム4から与えられるコマンド応答して、メモリコントローラ3がバッファ9に内部情報を書き込み、全ての内部情報がバッファ9に書き込まれたときに、メモリコントローラ3はその旨をホストシステム4に通知する。ホストシステム4は、この通知に応答してリードイネーブル(RE)端子にハイレベルとローレベルの信号を交互に入力すると共に、データレジスタ15dに保持されている情報を読み出す。リードイネーブル(RE)端子に入力される信号が遷移するタイミングでバッファ9に書き込まれた内部情報がデータレジスタ15dに転送されるため、ホストシステム4は、フラッシュメモリ2に記憶されているデータを読み出すときと同様の動作で内部情報を取得することができる。
また、本実施形態では、内部情報を、物理ゾーン毎の不良ブロック数および空きブロック数としたが、内部情報はこれらの情報に限定されるものではない。従って、内部情報は、不良ブロックの物理ブロックアドレス(PBA)等の情報であってもよい。
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。 フラッシュメモリのブロックとページの関係を示す説明図である。 ゾーンに分割して管理したフラッシュメモリの記憶領域の一例である。 本発明の実施形態における内部情報の一例である。 本発明の第1の実施形態におけるメモリコントローラの動作を説明するための説明図である。 本発明の第2の実施形態におけるメモリコントローラの動作を説明するための説明図である。 ATAレジスタを概略的に示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 ATAレジスタ
15a コマンドレジスタ
15b セクタカウントレジスタ
15c LBAレジスタ
15d データレジスタ
15e ステータスレジスタ
25 ユーザ領域
26 冗長領域

Claims (3)

  1. ATAインターフェースを有し、ホストシステムによりATAレジスタに書き込まれた指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、
    前記フラッシュメモリに書き込む書き込みデータ又は前記フラッシュメモリから読み出した読み出しデータを1又は複数セクタ単位で保持するデータ保持手段と、
    前記ホストシステムに対して、当該ホストシステムによりATAレジスタに書き込まれた指示情報に応答して開始された処理の状況を示す信号として、準備中又は準備終了を示す信号を出力する信号出力手段と、
    前記ホストシステムによりATAレジスタに書き込まれた指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを前記データ保持手段に書き込むデータ設定手段と
    前記データ保持手段に保持されている前記読み出しデータ又は前記内部情報データを、ATAレジスタを介して前記ホストシステムに転送するデータ転送手段とを備え、
    前記信号出力手段は、
    前記データ設定手段による前記データ保持手段への前記内部情報データの書き込みが開始されたときに、準備終了を示す信号から準備中を示す信号に出力信号を遷移させ、
    前記データ設定手段による前記データ保持手段への前記内部情報データの書き込みが終了したときに、準備中を示す信号から準備終了を示す信号に出力信号を遷移させ、
    前記データ転送手段による前記ホストシステムへの前記内部情報データの転送が終了したときに、準備終了を示す信号から準備中を示す信号に出力信号を遷移させることを特徴とするメモリコントローラ。
  2. 請求項1記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  3. ATAインターフェースを有し、ホストシステムによりATAレジスタに書き込まれた指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
    ATAレジスタに書き込まれた指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを、前記フラッシュメモリに書き込むデータ又は前記フラッシュメモリから読み出したデータを1又は複数セクタ単位で保持するデータ保持手段に書き込むデータ設定ステップと、
    前記データ設定ステップにより前記データ保持手段に書き込まれた前記内部情報データを、前記ホストシステムに転送するデータ転送ステップと、
    前記ホストシステムによりATAレジスタに書き込まれた指示情報に応答して開始された処理の状況を示す信号として、準備中又は準備終了を示す信号を出力する信号出力ステップとを含み、
    前記信号出力ステップでは、
    前記データ設定ステップによる前記データ保持手段への前記内部情報データの書き込みが開始されたときに、準備終了を示す信号から準備中を示す信号に出力信号を遷移させ、
    前記データ設定ステップによる前記データ保持手段への前記内部情報データの書き込みが終了したときに、準備中を示す信号から準備終了を示す信号に出力信号を遷移させ、
    前記データ転送ステップによる前記ホストシステムへの前記内部情報データの転送が終了したときに、準備終了を示す信号から準備中を示す信号に出力信号を遷移させることを特徴とするフラッシュメモリの制御方法。
JP2007009970A 2007-01-19 2007-01-19 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Expired - Fee Related JP4697146B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2008176606A JP2008176606A (ja) 2008-07-31
JP4697146B2 true JP4697146B2 (ja) 2011-06-08

Family

ID=39703575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007009970A Expired - Fee Related JP4697146B2 (ja) 2007-01-19 2007-01-19 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4697146B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10761750B2 (en) * 2017-03-09 2020-09-01 Netapp Inc. Selectively storing data into allocation areas using streams
KR102384759B1 (ko) 2017-11-13 2022-04-11 삼성전자주식회사 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05282857A (ja) * 1992-04-02 1993-10-29 Toshiba Corp メモリカード装置
JP2003085054A (ja) * 2001-06-27 2003-03-20 Mitsubishi Electric Corp フラッシュメモリを搭載した半導体記憶装置における装置寿命警告発生システムとその方法
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
JP2005071068A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置

Also Published As

Publication number Publication date
JP2008176606A (ja) 2008-07-31

Similar Documents

Publication Publication Date Title
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100728

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

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: 20110201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

R150 Certificate of patent or registration of utility model

Ref document number: 4697146

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees