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

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

Info

Publication number
JP2008070919A
JP2008070919A JP2006246202A JP2006246202A JP2008070919A JP 2008070919 A JP2008070919 A JP 2008070919A JP 2006246202 A JP2006246202 A JP 2006246202A JP 2006246202 A JP2006246202 A JP 2006246202A JP 2008070919 A JP2008070919 A JP 2008070919A
Authority
JP
Japan
Prior art keywords
flash memory
data
input
busy
memory
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
JP2006246202A
Other languages
English (en)
Other versions
JP4626595B2 (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 JP2006246202A priority Critical patent/JP4626595B2/ja
Publication of JP2008070919A publication Critical patent/JP2008070919A/ja
Application granted granted Critical
Publication of JP4626595B2 publication Critical patent/JP4626595B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】フラッシュメモリ内部での動作が行われなかったことを看過してしまうことを回避できるようにする。
【解決手段】ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラで、フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知し、この検知結果に基づいてラッシュメモリの動作状態を判断し、この判断の結果に基づいてデータの読み出し、書き込み、又は消去を指示する動作指示をフラッシュメモリに与える。
【選択図】図6

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に係り、特に並列アクセス時のビジー解除検知機能を有するメモリコントローラ及び該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
メモリカードやシリコンディスクなどの記憶媒体である半導体メモリとして、フラッシュメモリが多く用いられている。フラッシュメモリにはNOR型フラッシュメモリとNAND型フラッシュメモリがあり、特にNAND型フラッシュメモリは集積度に優れ、また書き込みに必要な動作電流が少ないなどの特長により大容量のメモリとして急成長をとげている。
このフラッシュメモリは、複数のメモリセルを有し、各メモリセルが消去状態のとき論理「1」とされ、書き込み状態のとき論理「0」とされる。
ところで、これらのメモリセルを消去状態から書き込み状態に変化させる場合には、メモリセル単位で行うことができるが、メモリセルを書き込み状態から消去状態に変化させる場合には、メモリセル単位で行うことができず、所定数のメモリセルからなるブロック単位で一括消去することが行われる(ブロック消去)。
また、所定数のメモリセルからなるブロック(物理ブロック)は、書き込み及び読み出しのアクセス処理単位である複数のページで構成されている。すなわち、小ブロックにおける物理ブロックは32ページであり、大ブロックにおける物理ブロックは64ページである。また、小ブロックでは、一個のページが1セクタ(=512バイト)のユーザ領域と16バイトの冗長領域とによって構成されている。
大ブロックでは、一個のページが4セクタ(=2048バイト)のユーザ領域と、64バイトの冗長領域とによって構成されている。
フラッシュメモリにデータを書き込むときは、フラッシュメモリ内のレジスタを介してメモリセルにデータが書き込まれ、フラッシュメモリからデータを読み出すときは、フラッシュメモリ内のレジスタを介してメモリセルからデータが読み出される。ここで、レジスタに保持されているデータをメモリセルに書き込むときには約200μs程度の時間を要し、メモリセルからレジスタにデータを読み出すときには約20μs程度の時間を要する。又、データを消去するときには約2ms程度の時間を要する。これらの期間中、フラッシュメモリはビジー状態になるため、フラッシュメモリに対してコマンドやデータを与えることができなくなる。
このビジー状態の発生に起因する処理速度の低下を軽減する従来技術として、複数のフラッシュメモリを並列処理するものがある。例えば特開平6−4399号公報(特許文献1)によれば、フラッシュメモリを複数個搭載し該フラッシュメメモリにデータの記憶を行う半導体記憶装置において、書き込み又は消去の指示を上記フラッシュメモリに送り、書き込み又は消去の指示が送られた上記フラッシュメモリが次の書き込み又は消去の指示が受け付け可能となるまでの間に、書き込み又は消去が行なわれている上記フラッシュメモリとは別のフラッシュメモリに書き込み又は消去の指示を送るようにしている。このような制御を行うことにより、半導体記憶装置全体としての処理速度を向上させている。
特開平6−4399号公報
上記従来技術は、半導体記憶装置全体としての処理速度を向上させることができるが、フラッシュメモリ内部での動作が正常に行われたか否かを確実に判断することができないという問題がある。この問題は、フラッシュメモリ内部での動作が正常に行われたか否かを、フラッシュメモリからステータスを読み出すことによって判断していることに起因する。
例えば、上記従来技術の半導体記憶装置において、何らかの原因により、フラッシュメモリが与えられた書き込み、消去等のコマンドを正しく認識できなかった場合、フラッシュメモリは与えられたコマンドに対応する動作を開始しないので、フラッシュメモリ内部のステータスは更新されない。従って、フラッシュメモリからステータスを読み出しても、フラッシュメモリ内部での動作が正常に行われたか否かを正しく判断することができない。
本発明の目的は、フラッシュメモリ内部での動作が行われなかったことを看過してしまうことを回避できるようにしたメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することにある。
本発明のメモリコントローラは、ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、前記フラッシュメモリに対してコマンドを含む動作指示を与える動作指示出力手段と、前記動作指示出力手段から出力される動作指示に応答して前記フラッシュメモリから出力されるビジー状態を示す信号が入力され、該信号が示す情報がビジー状態からビジー解除状態に遷移したことを検知し、該検知の結果を検知信号として出力するビジー解除検知手段と、前記検知信号に基づいて前記動作指示出力手段の動作を制御する制御手段とを備えたことを特徴とする。
このようなメモリコントローラによれば、前記フラッシュメモリから出力されるビジー状態を示す信号に基づいて、前記フラッシュメモリがビジー状態からビジー解除状態に遷移したことを検知するようにしたので、前記フラッシュメモリがビジー状態にならなかった場合は、内部での動作が開始されなかったと判断することができる。
又、前記制御手段は、前記フラッシュメモリがビジー状態からビジー解除状態に遷移するまで、前記動作指示出力手段が前記動作指示を前記フラッシュメモリに与えることを禁止することが好ましい。
このようにすることにより、前記フラッシュメモリ内部での動作が行われなかったときに、処理が続行されてしまうことを回避することができる。
又、前記メモリコントローラにおいて、前記フラッシュメモリに前記動作指示を与えてから所定の期間を経過しても、ビジー状態が発生しなかった場合、又はビジー状態が解除されなかった場合に、処理を中止する手段を設けてもよい。この処理を中止する手段に代えて、再処理を指示する手段を設けてもよい。
本発明のメモリコントローラは、ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラにおいて、前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知し、該検知の結果を検知信号として出力するビジー解除検知手段と、前記検知信号に基づいて前記フラッシュメモリの動作状態を判断し、該判断の結果に基づいてデータの読み出し、書き込み、又は消去を指示する動作指示を前記フラッシュメモリに与える動作指示手段とを備えたことを特徴とする。
このようなメモリコントローラによれば、前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知するようにしたので、前記フラッシュメモリがビジー状態にならなかった場合は、内部での動作が開始されなかったと判断することができる。
又、前記動作指示手段は、前記フラッシュメモリのビジー状態が解除されたと判断するまで、前記フラッシュメモリに前記動作指示を与えないことが好ましい。
このようにすることにより、前記フラッシュメモリ内部での動作が行われなかったときに、処理が続行されてしまうことを回避することができる。
又、前記メモリコントローラにおいて、前記フラッシュメモリに前記動作指示を与えてから所定の期間を経過しても、ビジー状態が発生しなかった場合、又はビジー状態が解除されなかった場合に、処理を中止する手段を設けてもよい。この処理を中止する手段に代えて、再処理を指示する手段を設けてもよい。
本発明のフラッシュメモリシステムは、ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリと、該フラッシュメモリを制御する前記メモリコントローラで構成されていることを特徴とする。
本発明のフラッシュメモリの制御方法は、ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラの制御方法において、前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知し、該検知の結果を検知信号として出力するビジー解除検知工程と、前記検知信号に基づいて前記フラッシュメモリの動作状態を判断し、該判断の結果に基づいてデータの読み出し、書き込み、又は消去を指示する動作指示を前記フラッシュメモリに与える動作指示工程とを備えたことを特徴とする。
このようなフラッシュメモリの制御方法によれば、前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知するようにしたので、前記フラッシュメモリがビジー状態にならなかった場合は、内部での動作が開始されなかったと判断することができる。
又、前記動作指示工程では、前記フラッシュメモリのビジー状態が解除されたと判断するまで、前記フラッシュメモリに前記動作指示を与えないことが好ましい。
又、前記フラッシュメモリの制御方法において、前記フラッシュメモリに前記動作指示を与えてから所定の期間を経過しても、ビジー状態が発生しなかった場合、又はビジー状態が解除されなかった場合に、処理を中止するようにしてもよい。この処理を中止する代わりに、再処理を指示するようにしてもよい。
本発明によれば、フラッシュメモリから出力される信号が示す情報が、ビジー状態からビジー解除状態に遷移したことを検知するようにしたので、フラッシュメモリが与えられたコマンドに対応する動作を開始しなかった場合に、誤ってフラッシュメモリ内部での動作が行われたと判断することを回避することができる。又、フラッシュメモリから出力される信号が示す情報が、ビジー状態からビジー解除状態に遷移したことを検知した後に次の動作指示を与えるようにしたので、フラッシュメモリ内部での動作が行われなかったことを看過して、処理が続行されてしまうことを回避することができる。
次に、本発明を実施するための最良の形態を、図面を参照して具体的に説明する。
図1は、本発明の第1の実施の形態であるフラッシュメモリシステムの概略構成を示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。また、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。
ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)と、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等とから構成される。ホストシステム4は、例えば文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は、不揮発性メモリであり、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。ここで、フラッシュメモリ2は2−0、2−1、・・・2−nの複数個のフラッシュメモリで構成されている。尚、以下の説明では、説明を簡単にするためにフラッシュメモリが2個である実施の形態を例にとって説明する。つまり、フラッシュメモリ2がフラッシュメモリ2−0とフラッシュメモリ2−1で構成されている場合について説明する。
メモリコントローラ3は、マイクロプロセッサ6と、ホスト・インターフェース・ブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリ・インターフェース・ブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御するための機能ブロックである。
ホスト・インターフェース・ブロック7は、ホストシステム4との間で、外部バス13を介して、データ、アドレス情報、ステータス情報、外部コマンド情報等の授受を行う。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホスト・インターフェース・ブロック7を入口としてメモリコントローラ3の内部(例えば、バッファ9)に取り込まれる。フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホスト・インターフェース・ブロック7を出口としてホストシステム4に供給される。
フラッシュメモリ・インターフェース・ブロック10は、フラッシュメモリ2の入出力バス(I/O)の端子に接続された内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。ここで、フラッシュメモリ2は、コマンド・ラッチ・イネーブル(CLE)、アドレス・ラッチ・イネーブル(ALE)、ライト・イネーブル(WE)、リード・イネーブル(RE)、チップ・イネーブル(CE)等の制御信号端子を備えている。チップセレクト信号線15は、イネーブル(CE)の端子に接続された信号線である。このチップセレクト信号線15を介して与えられる信号により、データ、アドレス情報、ステータス情報、内部コマンド等の授受を行う対象のフラッシュメモリ2−0又はフラッシュメモリ2−1が選択される。更に、図示していない制御信号線を介してコマンド・ラッチ・イネーブル(CLE)、アドレス・ラッチ・イネーブル(ALE)、ライト・イネーブル(WE)、リード・イネーブル(RE)等の制御信号端子に与えられる信号により、データ、アドレス情報、ステータス情報、内部コマンド等の授受の対象となる情報が選択される。
なお、「内部コマンド」とは、メモリコントローラ3がフラッシュメモリ2を制御するためのコマンドであり、ホストシステム4からメモリコントローラ3に与えられるコマンドを「外部コマンド」と言う。
ホスト・インターフェース・ブロック7及びフラッシュメモリ・インターフェース・ブロック10には各種レジスタが備わる。ホスト・インターフェース・ブロック7のレジスタにはホストシステム4から与えられるアドレス情報、外部コマンド情報等が書き込まれる。また、フラッシュメモリ・インターフェース・ブロック10のレジスタには、ホスト・インターフェース・ブロック7に書き込まれた情報に基づいて、フラッシュメモリ2内のアクセス対象領域を指示する情報が書き込まれる。
ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。メモリコントローラ3の内部では、複数個のセクタをまとめた論理ブロックが構成され、各論理ブロックに対応するデータは、その論理ブロックに割り当てられた1個又は複数個の物理ブロックに書き込まれる。従って、メモリコントローラ3は、論理ブロックと物理ブロックの対応関係を管理している。尚、以下の説明では、1個の論理ブロックが2個の物理ブロック(フラッシュメモリ2−0内の1個の物理ブロックとフラッシュメモリ2−1内の1個の物理ブロック)に割り当てられる実施の形態を例として説明する。
ワークエリア8は、マイクロプロセッサ6によるフラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。例えば、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化するので、個々の時点における両者の対応関係を管理するためアドレス変換テーブルがこのワークエリア8上に作成される。
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積するバッファである。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリ・インターフェース・ブロック10は、フラッシュメモリ2の入出力バス(I/O)の端子に接続された内部バス14を介して、フラッシュメモリ2とデータやアドレス情報、ステータス情報、内部コマンド情報の授受を行う。これらの授受を行うため、フラッシュメモリ・インターフェース・ブロック10は、フラッシュメモリ2のコマンド・ラッチ・イネーブル(CLE)、アドレス・ラッチ・イネーブル(ALE)、ライト・イネーブル(WE)、リード・イネーブル(RE)、チップ・イネーブル(CE)等の制御信号端子に信号を供給する。
ここで、1個の論理ブロックに割り当てられた2個の物理ブロックには、4セクタ単位(ページ単位)で論理ブロックに含まれるセクタが交互に振り分けられる。4セクタ単位で交互にセクタを振り分ける場合、LBAの下位側から3ビット目が「0」のセクタはフラッシュメモリ2−0内の物理ブロックに振り分けられ、LBAの下位側から3ビット目が「1」のセクタはフラッシュメモリ2−1内の物理ブロックに振り分けられる。つまり、LBAの下位側から3ビット目が「0」のときはフラッシュメモリ2−0が選択され、LBAの下位側から3ビット目が「1」のときはフラッシュメモリ2−1が選択される。この選択を行うため、フラッシュメモリ・インターフェース・ブロック10は、フラッシュメモリ2−0又はフラッシュメモリ2−1を活性化させる信号をチップセレクト信号線15に供給する。
尚、1個の論理ブロックに2m+1個の物理ブロックを割り当てる場合には、LBAの下位側から数えて3+mビット目から3ビット目までの値に基づいて各物理ブロックが含まれるフラッシュメモリ2の選択が行われる。例えば、1個の論理ブロックに4個の物理ブロック(フラッシュメモリ2−0〜2−3内の物理ブロック)を割り当てる場合には、LBAの下位側から数えて4ビット目と3ビット目の値に基づいて各物理ブロックが含まれるフラッシュメモリ2−0〜2−3のいずれか1つが選択される。つまり、LBAの下位側から数えて4ビット目と3ビット目が、「00」のときにフラッシュメモリ2−0が選択され、「01」のときにフラッシュメモリ2−1が選択され、「10」のときにフラッシュメモリ2−2が選択され、「11」のときにフラッシュメモリ2−3が選択される。
また、フラッシュメモリ・インターフェース・ブロック10は、フラッシュメモリ2−0〜2−1のビジー状態を監視して、フラッシュメモリ2−0〜2−1の内部で実行されるデータの読み出し、書き込み、消去の動作が正常に実行されたかどうかを検知する機能(ビジー解除検知機能)を有している。データの読み出し、書き込み、消去が正常に実行されなかった場合には、リトライを実行する機能を設けるようにしても良い。
ECCブロック11は、フラッシュメモリ2−0〜2−1に書き込むデータに付加すべきエラー・コレクション・コードを生成するとともに、読み出しデータに付加されたエラー・コレクション・コードに基づいて、読み出しデータに含まれる誤りを検出・訂正する。
ROM12は、不揮発性の記憶素子であり、シーケンスコマンド等を記憶している。マイクロプロセッサ6は、ROM12に記憶されているプログラムを読み込むことで、各種処理を実行している。また、シーケンスコマンドは、各種処理等を定義したコマンドセットで構成されている。フラッシュメモリ・インターフェース・ブロック10は、このシーケンスコマンドに従って、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
フラッシュメモリ2は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。このメモリセルアレイは、複数のメモリセル群と、ワード線とを備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間でデータの複写、すなわち、レジスタから選択されたメモリセルへの複写、又は選択されたメモリセルからレジスタへのデータの複写が行われる。つまり、メモリコントローラ3から与えられたデータは、レジスタを介してメモリセルアレイに書き込まれ、メモリセルアレイに記憶されているデータはレジスタを介してメモリコントローラ3に供給される。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、一方のゲートはコントロールゲート、他方のゲートはフローティングゲートとそれぞれ呼ばれている。このフローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲が絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧がコントロールゲートとフローティングゲートとの間に印加される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧がコントロールゲートとフローティングゲートとの間に印加される。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
このようなフラッシュメモリ2のアドレス空間は、“ページ”及び“ブロック(物理ブロック)”で構成されている。ページは、フラッシュメモリ2で行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。つまり、ワード線によって選択されるメモリセルがページに相当し、このページ単位でレジスタからメモリセルへのデータの書き込み(複写)、又はメモリセルからレジスタへのデータの読み出し(複写)が行われる。物理ブロックは、フラッシュメモリ2で行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
レジスタからメモリセルへのデータの書き込みは、約200μs程度の時間を要する。メモリセルからレジスタへのデータの読み出しは、約20μs程度の時間を要する。物理ブロックに記憶されているデータの消去は、約2ms程度の時間を要する。これらの動作を実行している間、フラッシュメモリ2は、データ、アドレス情報、内部コマンド等の授受を行うことのできないビジー状態になる。
次に、フラッシュメモリ2のアドレス空間の具体的な構造について説明する。
本実施の形態では、フラッシュメモリ2−0〜2−1が、大ブロックで構成されている場合を例として説明する。図2は、フラッシュメモリ2−0のアドレス空間の構造を概略的に示す図である。尚、フラッシュメモリ2−0とフラッシュメモリ2−1のアドレス空間は同一の構造なので、フラッシュメモリ2−0のアドレス空間の構造についてだけ説明する。
図2に示されるように、フラッシュメモリ2−0のアドレス空間は、ブロック0〜ブロック4095からなる4096個の物理ブロックで構成されている。各物理ブロックは、ページ0〜ページ63からなる64個のページで構成されている。更に、各ページは、2048バイト(4セクタ)のユーザ領域と64バイトの冗長領域で構成されている。
ここで、フラッシュメモリ2−0が有する4096個の物理ブロックに付けた通番が、物理ブロックを特定するための物理ブロックアドレス(PBA)である。フラッシュメモリ2−0が有する4096個の物理ブロックに含まれる全てのページ、つまり、262144個のページに付けた通番が、フラッシュメモリ2−0に与えるロウアドレス(0〜262143)に対応する。つまり、ロウアドレスにより、書き込み又は読み出しの対象のページが特定される。また、各ページは、図2に示されるように、ビットb0〜b7からなる8ビットを1バイトとして、2048バイト(4セクタ)のユーザ領域25と、64バイトの冗長領域26を備え、合計2112バイトの容量を有している。この2112バイトの領域内におけるバイト単位のアドレスがカラムアドレス(0〜2111)に対応する。
更に、ページの構造について、図3を参照して説明する。ユーザ領域25は、ホストシステム4から与えられるユーザデータが記憶される領域であり、第1セクタ16、第2セクタ17、第3セクタ18及び第4セクタ19に分割して使用されている。第1セクタ16はカラムアドレスの0〜511に対応する領域であり、第2セクタ17はカラムアドレスの512〜1023に対応する領域であり、第3セクタ18はカラムアドレスの1024〜1535に対応する領域であり、第4セクタ19はカラムアドレスの1536〜2047に対応する領域である。
冗長領域26は、不良ブロックであるか否かを示すブロックステータス、対応関係にある論理ブロックを特定するための論理アドレス情報、エラー・コレクション・コード等が記憶される領域であり、共通領域20、第1個別領域21、第2個別領域22、第3個別領域23及び第4個別領域24に分割して使用されている。
共通領域20は、カラムアドレスの2048〜2055に対応する領域(8バイトの領域)であり、ブロックステータス、論理アドレス情報等が記憶される。共通領域20に記憶されるブロックステータス、論理アドレス情報等は、物理ブロックに含まれる63個のページに共通な管理情報であり、この管理情報は、通常は先頭ページの共通領域20にだけ書き込まれる。
第1個別領域21は、カラムアドレスの2056〜2069に対応する領域(14バイトの領域)であり、第1セクタ16に書き込まれたデータに関する情報が記憶される。第2個別領域22は、カラムアドレスの2070〜2083に対応する領域(14バイトの領域)であり、第2セクタ17に書き込まれたデータに関する情報が記憶される。第3個別領域23は、カラムアドレスの2084〜2097に対応する領域(14バイトの領域)であり、第3セクタ18に書き込まれたデータに関する情報が記憶される。第4個別領域24は、カラムアドレスの2098〜2111に対応する領域(14バイトの領域)であり、第4セクタ19に書き込まれたデータに関する情報が記憶される。
例えば、第1個別領域21には、第1セクタ16に記憶されるデータに対応するエラー・コレクション・コード28等が記憶される。以下同様に、第2セクタ17〜第4セクタ19に記憶されるデータに対応するエラー・コレクション・コード28等は、第2個別領域22、第3個別領域23及び第4個別領域24にそれぞれ記憶される。
エラー・コレクション・コード28は、ECCブロック11で生成される管理情報であり、第1個別領域21に記憶されているエラー・コレクション・コード28に基づいて、第1セクタ16に記憶されているデータに含まれる誤りが訂正される。以下同様に、第2個別領域22〜第4個別領域24に記憶されているエラー・コレクション・コード28に基づいて、第2セクタ17〜第4セクタ19に記憶されているデータに含まれる誤りが訂正される。
尚、エラー・コレクション・コード28のデータ量は誤りの訂正能力に応じて適宜設定することがでできる。例えば、1シンボルが10ビットのリードソロモン符号をエラー・コレクション・コードとして使用して、4シンボル以下の誤りを訂正できるようにしたい場合には、8シンボル(10バイト)のエラー・コレクション・コードが第1個別領域21〜第4個別領域24にそれぞれ書き込まれる。
次に、ホストシステム4からLBAで指定されるアクセス領域とフラッシュメモリ2のユーザ領域25の対応関係について説明する。本実施の形態では、LBAが連続する512セクタの領域が、フラッシュメモリ2−0内の1個の物理ブロックに含まれるユーザ領域とフラッシュメモリ2−1内の1個の物理ブロックに含まれるユーザ領域に割り当てられる。つまり、LBAが連続する512セクタをまとめた論理ブロックが、フラッシュメモリ2−0内の1個の物理ブロックとフラッシュメモリ2−1内の1個の物理ブロックに割り当てられる。この論理ブロックと物理ブロックの対応関係は冗長領域26に書き込まれている論理アドレス情報に基づいて判断される。
本実施の形態では、512セクタをまとめたものを論理ブロックとしたので、LBAの下位9ビットを除いた上位ビット側が論理ブロックに付けた通番である論理ブロック番号(LBN)に対応する。例えば、LBAが0〜511のセクタで構成された論理ブロックのLBNは0になり、LBAが512〜1023のセクタで構成された論理ブロックのLBNは1になり、LBAが1024〜1535のセクタで構成された論理ブロックのLBNは2になる。
尚、共通領域20に書き込まれる論理アドレス情報は、この論理ブロック番号(LBN)を特定できる情報であればよい。又、同一の論理ブロックに割り当てられたフラッシュメモリ2−0内の1個の物理ブロックとフラッシュメモリ2−1内の1個の物理ブロックには、同一の論理アドレス情報が書き込まれる。
論理ブロックに含まれる512セクタの2個の物理ブロック(フラッシュメモリ2−0内の1個の物理ブロックとフラッシュメモリ2−1内の1個の物理ブロック)に対する振り分けについては、LBAの下位9ビットの値に基づいて振り分け先を特定することができる。
振り分け先がフラッシュメモリ2−0側の物理ブロックであるか、又はフラッシュメモリ2−1側の物理ブロックであるかは、LBAの下位側から数えて3ビット目の値に基づいて特定することができる。振り分け先がページ0〜ページ63のいずれのページであるかは、LBAの下位側から数えて9ビット目から4ビット目の値に基づいて特定される。振り分け先が第1セクタ16〜第4セクタ19のいずれの領域であるかは、LBAの下位側から数えて2ビット目と1ビット目の値に基づいて特定される。
例えば、LBAの下位9ビットの値が「0 0000 0000」〜「0 0000 0011」のセクタは、フラッシュメモリ2−0側の物理ブロックのページ0に振り分けられる。LBAの下位9ビットの値が「0 0000 0100」〜「0 0000 0111」のセクタは、フラッシュメモリ2−1側の物理ブロックのページ0に振り分けられる。LBAの下位9ビットの値が「0 0000 1000」〜「0 0000 1011」のセクタは、フラッシュメモリ2−0側の物理ブロックのページ1に振り分けられる。LBAの下位9ビットの値が「0 0000 1100」〜「0 0000 1111」のセクタは、フラッシュメモリ2−1側の物理ブロックのページ1に振り分けられる。更に、各ページに振り分けられた4セクタについては、LBAの下位側から数えて2ビット目と1ビット目の値が「00」のセクタは、第1セクタ16に振り分けられる。LBAの下位側から数えて2ビット目と1ビット目の値が「01」のセクタは、第2セクタ17に振り分けられる。LBAの下位側から数えて2ビット目と1ビット目の値が「10」のセクタは、第3セクタ18に振り分けられる。LBAの下位側から数えて2ビット目と1ビット目の値が「11」のセクタは、第4セクタ19に振り分けられる。
次に、フラッシュメモリに与えるアドレスの生成について説明する。ロウアドレスを生成するときは、LBAから論理ブロック番号(LBN)を求め、更に、論理ブロック番号(LBN)に対応する物理ブロックアドレス(PBA)を求める。この、物理ブロックアドレス(PBA)の下位側に、LBAの下位側から数えて9ビット目から4ビット目を連結することによりロウアドレスを生成することができる。カラムアドレスについては、LBAの下位側から数えて2ビット目と1ビット目の値に基づいて求めることができる。つまり、求めるカラムアドレスは、この2ビットが「00」であれば第1セクタ16のアドレスとなり、「01」であれば第2セクタ17のアドレスとなり、「10」であれば第3セクタ18のアドレスとなり、「11」であれば第3セクタ19のアドレスとなる。
次に、フラッシュメモリ2−0又はフラッシュメモリ2−1から1ページ分のデータを読み出す動作を、図4を参照して説明する。図4は、t1〜t26の期間にフラッシュメモリ2−0又はフラッシュメモリ2−1の入出力バス(I/O)に入力されるコマンド及びアドレスと入出力バス(I/O)から出力されるデータを示している。
t1〜t2の期間:
リードコマンド(RC)が入出力バス(I/O)に入力される。
t2〜t3の期間:
アドレス(AD)が入出力バス(I/O)に入力される。ここでは、読み出すページに対応するロウアドレスと第1セクタ16の先頭アドレス(図3に示した(1))に対応するカラムアドレスが入力される。
t3〜t4の期間:
フラッシュメモリ内のセルアレイからレジスタへのデータの読み出し(複写)が開始され、このデータの読み出し(複写)が終了するまで、フラッシュメモリはビジー状態になる。
t4〜t5の期間:
リード・イネーブル(RE)の端子に入力する信号を、「H」(ハイ・レベル)と「L」(ロー・レベル)に交互に遷移させることより、第1セクタ16に保持されているデータ(DT)が入出力バス(I/O)から出力される。ここで、入出力バス(I/O)から出力されるデータ(DT)は、リード・イネーブル(RE)の端子に入力される信号が「H」から「L」に遷移する毎に、次のカラムアドレスのデータに切替わる。
t5〜t6の期間:
ランダムリードコマンド(RRC)が入出力バス(I/O)に入力される。
t6〜t7の期間:
アドレス(AD)が入出力バス(I/O)に入力される。ここでは、第1個別領域21の先頭アドレス(図3に示した(2))に対応するカラムアドレスが入力される。
t7〜t8の期間:
リード・イネーブル(RE)の端子に入力する信号を、「H」と「L」に交互に遷移させることより、第1個別領域21に保持されているデータ(DT)が入出力バス(I/O)から出力される。ここで、入出力バス(I/O)から出力されるデータ(DT)は、リード・イネーブル(RE)の端子に入力される信号が「H」から「L」に遷移する毎に、次のカラムアドレスのデータに切替わる。
以下同様に、ランダムリードコマンド(RRC)とアドレス(AD)が入出力バス(I/O)に順次入力される。つまり、第2セクタ17、第2個別領域22、第3セクタ18、第3個別領域23、第4セクタ19及び第4個別領域24の先頭アドレス(図3に示した(3)〜(8))に対応するカラムアドレスが、ランダムリードコマンド(RRC)と共に順次入力される。入出力バス(I/O)に入力された各アドレス(AD)に対応して、第2セクタ17、第2個別領域22、第3セクタ18、第3個別領域23、第4セクタ19及び第4個別領域24に保持されているデータ(DT)が入出力バス(I/O)から出力される。
尚、リードコマンド(RC)及びランダムリードコマンド(RRC)が入出力バス(I/O)に入力されている期間は、コマンド・ラッチ・イネーブル(CLE)の端子に「H」の信号が入力され、アドレス・ラッチ・イネーブル(ALE)の端子に「L」の信号が入力される。アドレス(AD)が入出力バス(I/O)に入力されている期間は、コマンド・ラッチ・イネーブル(CLE)の端子に「L」の信号が入力され、アドレス・ラッチ・イネーブル(ALE)の端子に「H」の信号が入力される。リードコマンド(RC)、ランダムリードコマンド(RRC)及びアドレス(AD)が入出力バス(I/O)に入力されている期間に、ライト・イネーブル(WE)の端子に入力される信号を「L」から「H」に遷移させることにより、リードコマンド(RC)、ランダムリードコマンド(RRC)及びアドレス(AD)がフラッシュメモリに取り込まれる。
次に、フラッシュメモリ2−0又はフラッシュメモリ2−1に1ページ分のデータを書き込む動作を、図5を参照して説明する。図5は、t31〜t56の期間にフラッシュメモリ2−0又はフラッシュメモリ2−1の入出力バス(I/O)に入力されるコマンド、アドレス及びデータを示している。
t31〜t32の期間:
インプットコマンド(IC)が入出力バス(I/O)に入力される。
t32〜t33の期間:
アドレス(AD)が入出力バス(I/O)に入力される。ここでは、書き込み先のページに対応するロウアドレスと第1セクタ16の先頭アドレス(図3に示した(1))に対応するカラムアドレスが入力される。
t33〜t34の期間:
第1セクタ16に書き込むデータ(DT)が入出力バス(I/O)に順次入力される。書き込み先のカラムアドレスは、ライト・イネーブル(WE)の端子に入力される信号が「L」から「H」に遷移するタイミングで次のカラムアドレスに切替わる。従って、第1セクタ16に書き込むデータ(DT)も、ライト・イネーブル(WE)の端子に入力される信号レベルの遷移に合わせて入出力バス(I/O)に順次入力される。
t34〜t35の期間:
ランダムインプットコマンド(RIC)が入出力バス(I/O)に入力される。
t35〜t36の期間:
アドレス(AD)が入出力バス(I/O)に入力される。ここでは、第1個別領域21の先頭アドレス(図3に示した(2))に対応するカラムアドレスが入力される。
t36〜t37の期間:
第1個別領域21に書き込むデータ(DT)が入出力バス(I/O)に順次入力される。書き込み先のカラムアドレスは、ライト・イネーブル(WE)の端子に入力される信号が「L」から「H」に遷移するタイミングで次のカラムアドレスに切替わる。従って、第1個別領域21に書き込むデータ(DT)も、ライト・イネーブル(WE)の端子に入力される信号レベルの遷移に合わせて入出力バス(I/O)に順次入力される。
以下同様に、ランダムインプットコマンド(RIC)、アドレス(AD)及びデータ(DT)が入出力バス(I/O)に順次入力される。つまり、第2セクタ17、第2個別領域22、第3セクタ18、第3個別領域23、第4セクタ19及び第4個別領域24の先頭アドレス(図3に示した(3)〜(8))に対応するカラムアドレスと、これらの領域に書き込むデータ(DT)が、ランダムインプットコマンド(RIC)と共に順次入力される。
第4個別領域24に書き込むデータ(DT)が入出力バス(I/O)に順次入力された後(t55〜t56の期間)に、プログラムコマンド(PC)が入出力バス(I/O)に入力される。このプログラムコマンド(PC)に応答して、フラッシュメモリ内のレジスタからセルアレイへのデータの書き込み(複写)が開始され、このデータの書き込み(複写)が終了するまでフラッシュメモリはビジー状態になる。
尚、インプットコマンド(IC)、ランダムインプットコマンド(RIC)及びプログラムコマンド(PC)が入出力バス(I/O)に入力されている期間は、コマンド・ラッチ・イネーブル(CLE)の端子に「H」の信号が入力され、アドレス・ラッチ・イネーブル(ALE)の端子に「L」の信号が入力される。アドレス(AD)が入出力バス(I/O)に入力されている期間は、コマンド・ラッチ・イネーブル(CLE)の端子に「L」の信号が入力され、アドレス・ラッチ・イネーブル(ALE)の端子に「H」の信号が入力される。データ(DT)が入出力バス(I/O)に入力されている期間は、コマンド・ラッチ・イネーブル(CLE)の端子に「L」の信号が入力され、アドレス・ラッチ・イネーブル(ALE)の端子に「L」の信号が入力される。インプットコマンド(IC)、ランダムインプットコマンド(RIC)、プログラムコマンド(PC)及びアドレス(AD)が入出力バス(I/O)に入力されている期間に、ライト・イネーブル(WE)の端子に入力される信号を「H」から「L」に遷移させることにより、インプットコマンド(IC)、ランダムインプットコマンド(RIC)、プログラムコマンド(PC)及びアドレス(AD)がフラッシュメモリに取り込まれる。
次に、フラッシュメモリ2−0又はフラッシュメモリ2−1の内部で行われるセルアレイからレジスタへのデータの読み出し(複写)及びレジスタからセルアレイへのデータの書き込み(複写)が正常に行われたか否かを検出する方法について図6〜図8を参照して説明する。
本実施の形態におけるデータの読み出し処理及び書き込み処理では、フラッシュメモリ2−0とフラッシュメモリ2−1に交互にアクセスしている。従来、複数のフラッシュメモリに交互にアクセスする場合には、アクセスすべきフラッシュメモリのレディ/ビジー(R/B)の端子から出力される信号がレディ状態を示す「H」であることを確認してからアクセスを開始していた。つまり、フラッシュメモリがビジー状態であるか否かを、フラッシュメモリのレディ/ビジー(R/B)の端子から出力される信号レベルによって判断してからフラッシュメモリに対するアクセスを開始していた。
しかし、レディ/ビジー(R/B)の端子から出力される信号レベルを、アクセスを開始する直前に確認した場合、現在の状態がビジー状態であるか又はレディ状態であるかは判断することはできるが、その直前に行われたセルアレイからレジスタへのデータの読み出し(複写)又はレジスタからセルアレイへのデータの書き込み(複写)が正常に行われたか否かを判断することができない。例えば、フラッシュメモリが入力されたコマンドを正しく受け取ることができなかったために、セルアレイからレジスタへのデータの読み出し(複写)又はレジスタからセルアレイへのデータの書き込み(複写)が開始されなかった場合、それを検出することができない。
そこで、本発明による本実施の形態では、セルアレイからレジスタへのデータの読み出し(複写)又はレジスタからセルアレイへのデータの書き込み(複写)が正常に行われたか否かを判断するため、フラッシュメモリ・インターフェース・ブロック10内にビジー解除検知手段を設けている。このビジー解除検知手段は、リードコマンド(RC)又はプログラムコマンド(PC)を与えたときに、レディ/ビジー(R/B)の端子から出力される信号が、ビジー状態を示す「L」になった後、レディ状態を示す「H」に遷移したことを検出する。
図6を参照して、このビジー解除検知手段について説明する。図6はフラッシュメモリ・インターフェース・ブロック10内に備わるビジー解除検知手段の構成とビジー解除検知手段に入力される信号及びビジー解除検知手段から出力される信号を示している。なお、ビジー解除検知手段以外の構成については図示を省略している。
図6において、41は制御ブロック、42、43はフリップ・フロップ、44は内部バス14に相当する入出力バス(I/O)である。フリップ・フロップ42、43は例えばDタイプフリップ・フロップを使用できる。フリップ・フロップ42、43にはリセット端子R(Dタイプフリップ・フロップのクリア(Clear)端子)、検出端子S(Dタイプフリップ・フロップのクロック(Clock)端子)、出力端子Qを備えている。尚、図示していないDタイプフリップ・フロップのデータ(Data)端子は、プルアップされている。
フリップ・フロップ42、43の出力端子Qから出力される信号は制御ブロック41に入力されている。また、フリップ・フロップ42、43のリセット端子Rには制御ブロック41からリセット信号Rが入力されている。また、フリップ・フロップ42、43の検出端子Sにはフラッシュメモリ2−0、2−1のレディ/ビジー(R/B)から出力される信号が入力されている。ここで、フラッシュメモリ2−0に対応するものは添え字A、フラッシュメモリ2−1に対応するものは添え字Bを付けて図示してある。
フリップ・フロップ42、43は、リセット端子Rに「L」の信号が入力されると出力端子Qから出力される信号が「L」になる。この状態で検出端子Sに入力されている信号が「L」から「H」に遷移すると出力端子Qから出力される信号は「H」になる。
制御ブロック41は、フラッシュメモリ2−0にアクセスするときに、フラッシュメモリ2−0のチップ・イネーブル(CE)に「L」の信号を入力し、フラッシュメモリ2−1にアクセスするときに、フラッシュメモリ2−1のチップ・イネーブル(CE)に「L」の信号を入力する。
次に、フラッシュメモリ2−0とフラッシュメモリ2−1から交互にデータを読み出す動作を、図7を参照して説明する。
まず、制御ブロック41は、リードコマンド(RC)をフラッシュメモリ2−0の入出力バス(I/O)44に入力するタイミングで、フリップ・フロップ42のリセット端子Rに「L」の信号を入力する(t61)。リセット端子Rに「L」の信号が入力されたことにより、フリップ・フロップ42の出力端子Qから出力される信号は「H」から「L」に遷移する。その後、フラッシュメモリ2−0は、入出力バス(I/O)44に入力されたリードコマンド(RC)及びアドレス(AD)に基づいて、セルアレイからレジスタへのデータの読み出し(複写)を開始し、レディ/ビジー(R/B)の端子から出力される信号を「L」にする(t62)。
次に、制御ブロック41は、リードコマンド(RC)をフラッシュメモリ2−1の入出力バス(I/O)44に入力するタイミングで、フリップ・フロップ43のリセット端子Rに「L」の信号を入力する(t63)。リセット端子Rに「L」の信号が入力されたことにより、フリップ・フロップ43の出力端子Qから出力される信号は「H」から「L」に遷移する。その後、フラッシュメモリ2−1は、入出力バス(I/O)44に入力されたリードコマンド(RC)及びアドレス(AD)に基づいて、セルアレイからレジスタへのデータの読み出し(複写)を開始し、レディ/ビジー(R/B)の端子から出力される信号を「L」にする(t64)。
この後、制御ブロック41は、出力端子Qから出力される信号が「H」になるまで、フラッシュメモリ2−0に対するアクセスを禁止する。つまり、出力端子Qから出力される信号が「H」になった後に、フラッシュメモリ2−0に対するアクセスが開始される(t67)。このアクセスは、図4のt4〜t26に対応する。ここで、出力端子Qから出力される信号は、レディ/ビジー(R/B)の端子から出力される信号が「L」から「H」に遷移するタイミングで、「L」から「H」に遷移する(t66)。従って、リードコマンド(RC)をフラッシュメモリ2−0の入出力バス(I/O)44に入力した後に、セルアレイからレジスタへのデータの読み出し(複写)が開始されず、フラッシュメモリ2−0のレディ/ビジー(R/B)の端子から出力される信号が「L」にならなかった場合は、出力端子Qから出力される信号は「H」にならない。
同様に、制御ブロック41は、出力端子Qから出力される信号が「H」になるまで、フラッシュメモリ2−1に対するアクセスを禁止する。従って、フラッシュメモリ2−0に対するアクセスが終了した後、出力端子Qから出力される信号が「H」になっていれば、フラッシュメモリ2−1に対するアクセスが開始される(t71)。ここで、出力端子Qから出力される信号についても、フラッシュメモリ2−1のレディ/ビジー(R/B)の端子から出力される信号が「L」にならなかった場合は、「H」にならない。
尚、フラッシュメモリ2−1に対するアクセスを開始する前に、フラッシュメモリ2−0の入出力バス(I/O)44には、リードコマンド(RC)とアドレス(AD)が入力される。制御ブロック41は、リードコマンド(RC)をフラッシュメモリ2−0の入出力バス(I/O)44に入力するタイミングで、フリップ・フロップ42のリセット端子Rに「L」の信号を入力する(t69)。フラッシュメモリ2−1に対するアクセスを終了して、フラッシュメモリ2−0に対するアクセスを開始するときは、出力端子Qから出力される信号レベルに基づいてアクセスの可否を判断する。以後同様にフラッシュメモリ2−0に対するアクセスとフラッシュメモリ2−1に対するアクセスが交互に行われる。
リセット端子R又はリセット端子Rに「L」の信号を入力するタイミングは、レディ/ビジー(R/B)の端子から出力される信号が「L」から「H」に遷移する前、つまり、ビジー状態が解除される前であればよいが、ビジー状態の期間は一定でないため、ビジー状態になる前の方が好ましい。
次に、フラッシュメモリ2−0とフラッシュメモリ2−1に交互にデータを書き込む動作を、図8を参照して説明する。
まず、フラッシュメモリ2−0に対して図5のt31〜t56に示したアクセスが行われる。制御ブロック41は、プログラムコマンド(PC)をフラッシュメモリ2−0の入出力バス(I/O)44に入力するタイミングで、フリップ・フロップ42のリセット端子Rに「L」の信号を入力する(t82)。リセット端子Rに「L」の信号が入力されたことにより、フリップ・フロップ42の出力端子Qから出力される信号は「H」から「L」に遷移する。その後、フラッシュメモリ2−0は、入出力バス(I/O)44に入力されたプログラムコマンド(PC)及びアドレス(AD)(図5のt32〜t33の期間に入力されたアドレス(AD))に基づいて、レジスタからセルアレイへのデータの書き込み(複写)を開始し、レディ/ビジー(R/B)の端子から出力される信号を「L」にする(t83)。
次に、フラッシュメモリ2−1に対して図5のt31〜t56に示したアクセスが行われる。
制御ブロック41は、プログラムコマンド(PC)をフラッシュメモリ2−1の入出力バス(I/O)44に入力するタイミングで、フリップ・フロップ43のリセット端子Rに「L」の信号を入力する(t86)。リセット端子Rに「L」の信号が入力されたことにより、フリップ・フロップ43の出力端子Qから出力される信号は「H」から「L」に遷移する。その後、フラッシュメモリ2−1は、入出力バス(I/O)44に入力されたリードコマンド(RC)及びアドレス(AD)に基づいて、レジスタからセルアレイへのデータの書き込み(複写)を開始し、レディ/ビジー(R/B)の端子から出力される信号を「L」にする(t87)。
読み出しの場合と同様に、制御ブロック41は、出力端子Qから出力される信号が「H」になるまで、フラッシュメモリ2−0に対するアクセスを禁止し、出力端子Qから出力される信号が「H」になるまで、フラッシュメモリ2−1に対するアクセスを禁止する。従って、フラッシュメモリ2−1に対するアクセスが終了した後、出力端子Qから出力される信号が「H」になっていれば、フラッシュメモリ2−0に対するアクセスが開始される(t88)。以後同様に、フラッシュメモリ2−0に対するアクセスが終了した後、出力端子Qから出力される信号が「H」になっていれば、フラッシュメモリ2−1に対するアクセスが開始される。このようにして、フラッシュメモリ2−0に対するアクセスとフラッシュメモリ2−1に対するアクセスが交互に行われる。
書き込みの場合もリセット端子R又はリセット端子Rに「L」の信号を入力するタイミングは、レディ/ビジー(R/B)の端子から出力される信号が「L」から「H」に遷移する前、つまり、ビジー状態が解除される前であればよいが、ビジー状態の期間は一定でないため、ビジー状態になる前の方が好ましい。
フラッシュメモリ2−0又はフラッシュメモリ2−1に対するアクセスを開始するときに、フラッシュメモリ2−0又はフラッシュメモリ2−1からステータスを読み出して、書き込み動作でエラーが発生しなかったかどうかを確認してもよい。
又、上記フラッシュメモリ2−0とフラッシュメモリ2−1に対する読み出し又は書き込みで、リセット端子R又はリセット端子Rに「L」の信号を入力した後、所定の期間が経過しても出力端子Q又は出力端子Qから出力される信号が「H」にならなかった場合は、処理を中止する。ここでの所定の期間は、書き込み、読み出し等の動作時間を考慮して、適宜設定することができる。所定の期間が経過しても出力端子Q又は出力端子Qから出力される信号が「H」にならなかった場合に、正常に行われなかった処理を再度実行するようにしてもよい。
以上の説明では、読み出し又は書き込みが連続的に行われる場合について説明したが、消去の場合も同様に適用することができる。又、読み出し、書き込み又は消去が混在する場合も同様に適用することができる。例えば、読み出しと書き込みが交互に行われる場合も同様に適用することができる。又、フラッシュメモリの物理ブロックが大ブロックの場合を例に挙げて説明したが、小ブロックのものでも同様に実施することができる。
また、図6に示した回路はDタイプフリップ・フロップを用いて構成したが、レディ/ビジー(R/B)の端子から出力される信号が一旦「L」(ビジー状態)になり、その後「H」(レディ状態)になったことを検知できるビジー解除検知手段であればDタイプフリップ・フロップに限らず実施することができる。
また、以上の説明では、フラッシュメモリを複数個備えるものに本発明を適用した例を挙げたが、フラッシュメモリが1個の場合に本発明を適用すると、処理速度の高速化は得られないが、フラッシュメモリ内部での動作が行われなかったことを検知することはできる。
以上、本実施の形態を具体的に説明したが、本発明は上記実施の形態に限定されず、発明の要旨を逸脱しない範囲で変更して実施することができる。
本発明の第1の実施の形態であるフラッシュメモリシステムの概略構成を示すブロック図である。 本発明の第1の実施の形態で使用されるフラッシュメモリの、アドレス空間の構成について説明する図である。 本発明の第1の実施の形態で使用されるフラッシュメモリの、ページの構成、及び冗長領域のデータ構造を概略的に示す図である。 フラッシュメモリの1ページ分の読み出し動作を説明する図である。 フラッシュメモリの1ページ分の書き込み動作を説明する図である。 本発明の第1の実施の形態であるフラッシュメモリ・インターフェース・ブロック10内に備わる、ビジー解除検知機能の構成を示す図である。 本発明の第1の実施の形態における、フラッシュメモリから複数ページのデータを連続して読み出すときの動作を説明する図である。 本発明の第1の実施の形態における、フラッシュメモリへ複数ページのデータを連続して書き込むときの動作を説明する図である。
符号の説明
1・・・フラッシュメモリシステム
2、2−0、2−1、2−n・・・フラッシュメモリ
3・・・メモリコントローラ
4・・・ホストシステム
6・・・マイクロプロセッサ(動作指示出力手段)
7・・・ホスト・インターフェース・ブロック
8・・・ワークエリア
9・・・バッファ(データ保持手段)
10・・・フラッシュメモリ・インターフェース・ブロック(データ入出力手段)
11・・・ECC(エラー・コレクション・コード)ブロック
12・・・ROM
13・・・外部バス
14・・・内部バス
15・・・チップセレクト信号線
16・・・第1セクタ
17・・・第2セクタ
18・・・第3セクタ
19・・・第4セクタ
20・・・共通領域
21〜24・・・個別領域
25・・・ユーザ領域
26・・・冗長領域
28・・・ECC(エラー・コレクション・コード)
41・・・制御ブロック
42、43・・・フリップ・フロップ(ビジー解除検知手段)
44・・入出力バス(I/O)

Claims (7)

  1. ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記フラッシュメモリに対してコマンドを含む動作指示を与える動作指示出力手段と、
    前記動作指示出力手段から出力される動作指示に応答して前記フラッシュメモリから出力されるビジー状態を示す信号が入力され、該信号が示す情報がビジー状態からビジー解除状態に遷移したことを検知し、該検知の結果を検知信号として出力するビジー解除検知手段と、
    前記検知信号に基づいて前記動作指示出力手段の動作を制御する制御手段とを備えたことを特徴とするメモリコントローラ。
  2. 前記制御手段は、前記フラッシュメモリがビジー状態からビジー解除状態に遷移するまで、前記動作指示出力手段が前記動作指示を前記フラッシュメモリに与えることを禁止することを特徴とする請求項1に記載のメモリコントローラ。
  3. ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラにおいて、
    前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知し、該検知の結果を検知信号として出力するビジー解除検知手段と、
    前記検知信号に基づいて前記フラッシュメモリの動作状態を判断し、該判断の結果に基づいてデータの読み出し、書き込み、又は消去を指示する動作指示を前記フラッシュメモリに与える動作指示手段とを備えたことを特徴とするメモリコントローラ。
  4. 前記動作指示手段は、前記フラッシュメモリのビジー状態が解除されたと判断するまで、前記フラッシュメモリに前記動作指示を与えないことを特徴とする請求項3に記載のメモリコントローラ。
  5. ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリと、該フラッシュメモリを制御する請求項1乃至請求項4のいずれか一項に記載のメモリコントローラで構成されたフラッシュメモリシステム。
  6. ページ単位でデータの読み出し又は書き込みが行われ、ブロック単位で記憶データの消去が行なわれるフラッシュメモリに対するアクセスを制御するメモリコントローラの制御方法において、
    前記フラッシュメモリが出力する信号に基づいて該フラッシュメモリがビジー状態になった後、該ビジー状態が解除されたことを検知し、該検知の結果を検知信号として出力するビジー解除検知工程と、
    前記検知信号に基づいて前記フラッシュメモリの動作状態を判断し、該判断の結果に基づいてデータの読み出し、書き込み、又は消去を指示する動作指示を前記フラッシュメモリに与える動作指示工程とを備えたことを特徴とするフラッシュメモリの制御方法。
  7. 前記動作指示工程は、前記フラッシュメモリのビジー状態が解除されたと判断するまで、前記フラッシュメモリに前記動作指示を与えないことを特徴とする請求項6に記載のフラッシュメモリの制御方法。
JP2006246202A 2006-09-12 2006-09-12 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Active JP4626595B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2008070919A true JP2008070919A (ja) 2008-03-27
JP4626595B2 JP4626595B2 (ja) 2011-02-09

Family

ID=39292479

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4626595B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614049A (zh) * 2018-12-11 2019-04-12 湖南国科微电子股份有限公司 闪存控制方法、闪存控制器及闪存系统
CN112558979A (zh) * 2020-12-09 2021-03-26 深圳国人无线通信有限公司 实现不同层面之间数据交互的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863446A (ja) * 1994-08-26 1996-03-08 Hitachi Ltd フラッシュメモリ、およびそれと接続するプロセッサ
JPH1063442A (ja) * 1996-08-22 1998-03-06 Toshiba Corp 半導体ディスク装置
JPH11249972A (ja) * 1998-02-27 1999-09-17 Nissin Electric Co Ltd フラッシュメモリの異常検出回路
JPH11260075A (ja) * 1998-01-08 1999-09-24 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータおよびデータ書換方法
JP2003150574A (ja) * 2001-11-15 2003-05-23 Mitsubishi Electric Corp マイクロコンピュータ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863446A (ja) * 1994-08-26 1996-03-08 Hitachi Ltd フラッシュメモリ、およびそれと接続するプロセッサ
JPH1063442A (ja) * 1996-08-22 1998-03-06 Toshiba Corp 半導体ディスク装置
JPH11260075A (ja) * 1998-01-08 1999-09-24 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータおよびデータ書換方法
JPH11249972A (ja) * 1998-02-27 1999-09-17 Nissin Electric Co Ltd フラッシュメモリの異常検出回路
JP2003150574A (ja) * 2001-11-15 2003-05-23 Mitsubishi Electric Corp マイクロコンピュータ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614049A (zh) * 2018-12-11 2019-04-12 湖南国科微电子股份有限公司 闪存控制方法、闪存控制器及闪存系统
CN109614049B (zh) * 2018-12-11 2022-03-25 湖南国科微电子股份有限公司 闪存控制方法、闪存控制器及闪存系统
CN112558979A (zh) * 2020-12-09 2021-03-26 深圳国人无线通信有限公司 实现不同层面之间数据交互的方法

Also Published As

Publication number Publication date
JP4626595B2 (ja) 2011-02-09

Similar Documents

Publication Publication Date Title
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4626595B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4284331B2 (ja) 不揮発性半導体記憶装置のアクセス方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4670370B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4640366B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2008097339A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4213166B2 (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: 20100727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100831

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4626595

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150