JP2007066119A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

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

Info

Publication number
JP2007066119A
JP2007066119A JP2005252914A JP2005252914A JP2007066119A JP 2007066119 A JP2007066119 A JP 2007066119A JP 2005252914 A JP2005252914 A JP 2005252914A JP 2005252914 A JP2005252914 A JP 2005252914A JP 2007066119 A JP2007066119 A JP 2007066119A
Authority
JP
Japan
Prior art keywords
flash memory
flash
host system
access
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
JP2005252914A
Other languages
English (en)
Other versions
JP4273106B2 (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 JP2005252914A priority Critical patent/JP4273106B2/ja
Publication of JP2007066119A publication Critical patent/JP2007066119A/ja
Application granted granted Critical
Publication of JP4273106B2 publication Critical patent/JP4273106B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 本発明は、複数のフラッシュメモリにより構成されるアドレス空間へのアクセスを円滑に行うことができるメモリコントローラ、当該メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法を提供することを目的とする。
【解決手段】 本発明に係るメモリコントローラは、N個のフラッシュメモリを仮想的な一つのアドレス空間として利用するために、ホストシステムとフラッシュメモリとの間で送受信されるデータを一時的に格納するバッファ部と、N個のフラッシュメモリのうちのいずれか一つ又はホストシステムに、バッファ部に対するアクセスを許可する、バッファ制御部と、を備える。バッファ制御部は、第1のフラッシュメモリ、ホストシステム、第2のフラッシュメモリ、ホストシステム、・・・、第Nのフラッシュメモリ、ホストシステム、の順で、順次バッファ部に対するアクセスを許可する。
【選択図】図5

Description

本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。
ホストシステムによるフラッシュメモリへのアクセスは、メモリコントローラが仲介することにより実行される。その際、ホストシステムとフラッシュメモリとの間で送受信されるデータは、送信元によりメモリコントローラ内に設けられたバッファに所定量だけ一時的に格納され、該所定量が格納される毎に受信先により順次データが読み出される(例えば特許文献1を参照)。
ところで、記録媒体の大容量化、高速化が求められる昨今では、複数のフラッシュメモリで仮想的な1つのアドレス空間を構成する場合がある。この場合にも、データの送受信はコントローラ内に設けられたバッファを介して実行される。
ここで、ホストシステム及び各フラッシュメモリがバッファへ同時にアクセスすることはできない。このため、ホストシステム及び各フラッシュメモリのいずれかにバッファへのアクセスを適宜許可する必要がある。このバッファへのアクセス許可が効率的に成されないと、フラッシュメモリへのアクセス時間の増大等により、円滑なアクセスが阻害される。
特開2004−326574号公報
本発明は上記の実情に鑑みてなされたもので、複数のフラッシュメモリにより構成されるアドレス空間へのアクセスを円滑に行うことができるメモリコントローラ、当該メモリコントローラを備えるフラッシュメモリシステム、及びフラッシュメモリの制御方法を提供することを目的とする。
本発明の第1の観点に係るメモリコントローラは、N個のフラッシュメモリを仮想的な一つのアドレス空間として利用するホストシステムからの命令に応答して前記N個のフラッシュメモリへのアクセスを制御するメモリコントローラであって、前記ホストシステムが前記フラッシュメモリに格納しようとするデータ、及び、前記ホストシステムが前記フラッシュメモリから読み出そうとするデータを、一時的に格納するバッファ部と、前記N個のフラッシュメモリのうちのいずれか一つ又は前記ホストシステムに、前記バッファ部に対するアクセスを許可する、バッファ制御部と、を備え、前記バッファ制御部は、第1のフラッシュメモリ、前記ホストシステム、第2のフラッシュメモリ、前記ホストシステム、・・・、第N−1のフラッシュメモリ、前記ホストシステム、第Nのフラッシュメモリ、前記ホストシステム、の順で、順次前記バッファ部に対するアクセスを許可する、ことを特徴とする。
前記バッファ制御部は、前記メモリコントローラの動作の基準となる内部クロックに同期して、前記バッファ部へのアクセスを許可する対象を切り替えてもよい。
前記内部クロックをカウントするN×2進のカウンタを更に備え、前記バッファ制御部は、前記カウンタのカウント値に応じて、前記バッファ部へのアクセスを許可する対象を切り替えてもよい。
前記バッファ部は、各段が1セクタ分の記憶容量を有する複数段のFIFO(First In First Out)メモリで構成されてもよい。
本発明第2の観点に係わるフラッシュメモリシステムは、メモリコントローラと、N個のフラッシュメモリと、から構成される、ことを特徴とする。
本発明の第3の観点に係るフラッシュメモリの制御方法は、第1から第NまでのN個のフラッシュメモリを仮想的な一つのアドレス空間として利用するホストシステムからの命令に応答して、前記N個のフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、前記ホストシステムが前記フラッシュメモリに格納しようとするデータ及び前記ホストシステムが前記フラッシュメモリから読み出そうとするデータを一時的に格納するバッファ部に対するアクセスを、前記ホストシステムに許可するホストアクセス許可ステップと、前記バッファ部に対するアクセスを、前記N個のフラッシュメモリのうちの一つに許可するフラッシュアクセス許可ステップと、を備え、前記ホストアクセス許可ステップと前記フラッシュアクセス許可ステップとは、交互に繰り返し実行され、前記フラッシュアクセス許可ステップは、繰り返し実行される毎に、前記第1から第Nのフラッシュメモリに対し順次、前記バッファ部へのアクセスを許可する、ことを特徴とする。
本発明によれば、ホストシステムがフラッシュメモリに効率的にアクセスすることができる。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、2つのフラッシュメモリ2A及び2B(以下、フラッシュメモリ2A及び2Bを総称してフラッシュメモリ2と呼ぶ)と、フラッシュメモリ2を制御するコントローラ3で構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子が注入される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子が排出される。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
このようなフラッシュメモリ2のアドレス空間の一例を図2に示す。フラッシュメモリ2のアドレス空間は、“ページ”と“ブロック”に基づいて分割されている。
ページは、フラッシュメモリ2にて行われるデータ読出動作及びデータ書込動作における処理単位である。ブロックは、フラッシュメモリ2にて行われるデータ消去動作における処理単位である。
1つのページは、512バイトのユーザ領域25と、16バイトの冗長領域26とを含んでいる。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。
冗長領域26は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス(フラグ)等の付加データを記録するための領域である。
尚、ページの容量、ブロックサイズ(ブロックを構成するページの数)等は、フラッシュメモリの品種によって異なっている。例えば、1つのページのユーザー領域が1セクタ(512バイト)で構成されているものや、4セクタ(2kバイト)で構成されているものがある。
エラーコレクションコードは、ユーザ領域25に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
対応論理ブロックアドレスは、1つのブロックに含まれている少なくとも1つのユーザ領域25に有効なデータが格納されているとき、そのブロックが対応付けられている論理ブロックのアドレスを示す。
論理ブロックアドレスは、ホストシステム4から与えられるホストアドレスに基づいて決定されるブロックのアドレスである。一方、フラッシュメモリ2内における実際のブロックのアドレスは、物理ブロックアドレスと称される。
1つのブロックに含まれているいずれのユーザ領域25にも有効なデータが格納されていないときには、そのブロックに含まれている冗長領域26に、対応論理ブロックアドレスは格納されていない。
従って、冗長領域26に対応論理ブロックアドレスが格納されているか否かを判定することにより、その冗長領域26が含まれているブロックのデータが消去されているか否かを判定することができる。冗長領域26に対応論理ブロックアドレスが格納されていないとき、そのブロックは、データが消去された状態となっている。
1つのブロックは、複数のページを含んでいる。フラッシュメモリ2では、データの上書きができない。このため、1つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれたブロック内の全ページに格納されたデータを、再度書き込まなければならない。
つまり、通常のデータ書き換えでは、書き換えるページが含まれるブロックの全ページに格納されたデータが、別の消去されているブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータが、そのまま再度書き込まれる。
上記のようにデータを書き換えるにあたっては、書き換えられたデータは、以前に格納されていたブロックとは異なるブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域26に記憶されている対応論理ブロックアドレスに基づいて作成される。なお、このような動的なアドレス管理手法は、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域26には、不良ブロックであることを示すブロックステータスが書き込まれる。
このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、ステータス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3からの内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
本実施の形態のフラッシュメモリシステム1では、二つのフラッシュメモリ2A及び2Bが、一つの仮想的なアドレス空間を構成する。
すなわち、ホストシステム4は、フラッシュメモリ2A及び2Bが構成する仮想的なアドレス空間におけるページを特定するための仮想ページアドレスに基づいて、該仮想的なアドレス空間を認識する。
一方、実際にフラッシュメモリ2A及び2Bのページにアクセスするためには、フラッシュメモリ2A及び2Bのそれぞれが有する実際のアドレス空間におけるページを特定するための物理ページアドレスを用いる必要がある。
本実施の形態のフラッシュメモリシステム1においては、仮想ページアドレスと物理ページアドレスとは、図3に示すような対応関係にある。図3は、1ブロックに32個のページが含まれるフラッシュメモリの場合の例であり、フラッシュメモリ2A及び2Bに対して仮想ページアドレスが交互に割り振られている。
すなわち、仮想ページアドレスにおける偶数ページ(ページ0、2、4、・・・)がフラッシュメモリ2Aの物理ページアドレス(ページ0,1、2、3、・・・)に対応し、仮想ページアドレスにおける奇数ページ(ページ1、3、5、・・・)がフラッシュメモリ2Bの物理ページアドレス(ページ0,1、2、3、・・・)に対応する。その結果、1ブロックを構成するページ数が64ページに拡張される。
なお、一つの仮想的なアドレス空間を構成するためのフラッシュメモリ2の数は、二つに限らず、更に多数であってもよい。
本発明のコントローラ3は、フラッシュメモリ2A及び2Bにより構成されるアドレス空間を、仮想的な一つのアドレス空間としてホストシステム4が利用できるように、ホストシステム4によるフラッシュメモリ2A及び2Bへのアクセスを制御する。
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、RAM(Random Access Memory)と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12と、RAM制御ブロック15と、フラッシュメモリシーケンサブロック16A及び16Bと、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12やワークエリア8に記録されたプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、ROM12に格納されたプログラムに基づいてフラッシュメモリシーケンサブロック16Aの有するレジスタの値を設定することにより、フラッシュメモリインターフェースブロック10を介したフラッシュメモリ2Aへのアクセス処理を実行させる。
ホストインターフェースブロック7は、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド、外部クロックBCLK等の授受を行なう。すなわち、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
RAM9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでRAM9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでRAM9に保持される。
又、RAM9から出力されるデータは、ホストインタフェースブロック7、フラッシュメモリシーケンサブロック16A、16Bに対してそれぞれ設けられた出力レジスタに保持された後、ホストシステム、フラッシュメモリ2A、2Bに供給される。RAM9に入力されるデータは、ホストインターフェースブロック7、フラッシュメモリシーケンサブロック16A、16Bに対してそれぞれ設けられた入力レジスタ(選択的にRAM9の入力に接続されるレジスタ)を介してRAM9に供給される。
より詳細には、RAM9は、8個のFIFO(First In First Out;ファーストインファーストアウト)バッファFIFO−A乃至FIFO−Hを備える。各FIFOバッファは、それぞれ512バイトすなわち1セクタ分の記憶容量を有する。そしてRAM9は、RAM制御ブロック15による制御に基づきFIFOバッファを順次使用して、フラッシュメモリ2へ書き込むデータ、又はフラッシュメモリ2から読み出したデータを一時的に格納する。そして、RAM制御ブロック15による制御に基づき、格納したデータを要求に応じてフラッシュメモリ2やホストシステム4に供給する。なお、FIFOバッファの数は、8個に限定されるものではなく、更に多数又は少数であってもよい。
RAM制御ブロック15は、ホストシステム4、フラッシュメモリ2A及び2BによるRAM9へのデータの書き込み及びRAM9からのデータの読み出しを制御する。図4に示すように、RAM制御ブロック15は、カウンタ151と、アクセス許可部152と、RAMアドレス生成部153と、から構成される。
カウンタ151は、図示せぬクロック源が発生する内部クロックUCLKをカウントする4進のカウンタである。
なお、N個のフラッシュメモリ2によって仮想的なアドレス空間が構成される場合、カウンタ151は、2×N進のカウンタとすればよい。
アクセス許可部152は、カウンタ151のカウント値に応じてホストシステム4、フラッシュメモリ2A及び2Bのいずれか一つにRAM9へのアクセスを許可する。具体的には、図5に示したようにカウンタ151のカウント値が「01」又は「11」の場合には、アクセス許可部152は、ホストシステム4によるアクセスの可否を示すat_cen信号、フラッシュメモリ2Aによるアクセスの可否を示すfs0_cen信号、及びフラッシュメモリ2Bによるアクセスの可否を示すfs1_cen信号のうち、at_cen信号をローレベル(ローレベルが許可を示している)とし、他をハイレベルとする。また、カウンタ151のカウント値が「00」の場合には、アクセス許可部152は、fs0_cen信号をローレベルとし、他をハイレベルとする。また、カウンタ151のカウント値が「10」の場合には、アクセス許可部152は、fs1_cen信号をローレベルとし、他をハイレベルとする。
RAMアドレス生成部153は、各FIFO内での記憶位置を示すアドレスに、RAM9のFIFOバッファを区別するためのアドレスを付加したRAMアドレスを生成する。尚、FIFOバッファを区別するアドレスは、カウンタ151のカウント値に応じて切り替る。また、RAMアドレス生成部153に入力されるFIFO内でのアドレスも、カウンタ151のカウント値に応じて切り替る。
図1に戻って、フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
フラッシュメモリシーケンサブロック16A及び16Bは、シーケンスコマンドに基づいて、それぞれフラッシュメモリ2A及び2Bの動作を制御する。フラッシュメモリシーケンサブロック16A及び16Bは、複数のレジスタ(図示せず)を有している。フラッシュメモリシーケンサブロック16A及び16Bは、マイクロプロセッサ6による制御のもと、シーケンスコマンドが実行されるときに使用される情報を、複数のレジスタに設定する。複数のレジスタに情報を設定した後、フラッシュメモリシーケンサブロック16A及び16Bは、各レジスタに設定された情報に基づいて、シーケンスコマンドに従った動作を行う。例えば、シーケンスコマンドに基づいて、制御信号や内部コマンドをフラッシュメモリインターフェースブロック10を介してフラッシュメモリ2に供給する。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
[RAM9への時分割アクセスの説明]
次に、このように構成されるフラッシュメモリシステム1において、ホストシステム4がフラッシュメモリ2にアクセスする場合にRAM制御ブロック15によって実現されるRAM9への時分割アクセスについて、図5を参照して説明する。
なお、以下の説明では、ホストシステム4がRAM9にデータを書き込み、フラッシュメモリ2A及び2Bが、RAM9に格納されているデータを読み出す場合を例に説明するが、これとは逆の場合でも、同様の手法により時分割アクセスが実現できる。
RAM制御ブロック15は、図5(a)に示すような、内部クロックUCLKに基づいたタイミングで、ホストシステム4、フラッシュメモリ2A及び2BのいずれにRAM9へのアクセスを許可するかを順次切り替える。
具体的には、RAM制御ブロック15は、図5(b)に示すように、カウンタ151により内部クロックUCLKをカウントする。
時刻t1において、図5(c)に示すように、ram_cen信号がローレベルとなると、RAM9がアクセス可能な状態となる。
このとき、カウント値が「00」であるため、図5(d)に示すように、fs0_cen信号がローレベルとなり、フラッシュメモリ2AがRAM9にアクセス可能となる。
また、図5(g)に示すように、RAMアドレス生成部153は、フラッシュメモリ2Aが読み出そうとするデータのRAM9におけるアドレスを生成し、RAM9に供給する。
時刻t2において、図5(a)に示すように、内部クロックUCLKが立ち上がると、図5(h)に示すように、RAM9は、フラッシュメモリ2Aが読み出そうとするデータfs0_1を出力する。フラッシュメモリ2Aは、フラッシュメモリインターフェースブロック10を介してこのデータを取得する。また、カウンタ151のカウント値が「01」へと変化する。
カウント値が「01」となったことに伴い、図5(d)に示すように、fs0_cen信号はハイレベルとなり、フラッシュメモリ2AがRAM9にアクセス不能となる。一方、図5(f)に示すように、at_cen信号はローレベルとなり、ホストシステム4がRAM9にアクセス可能となる。
また、図5(g)に示すように、RAMアドレス生成部153は、ホストシステム4が書き込もうとするデータのRAM9におけるアドレスを生成し、RAM9に供給する。この際、RAM9には、図5(j)に示すように、書き込みデータat_1が入力される。
続いて、時刻t3において、図5(a)に示すように、内部クロックUCLKが立ち上がると、図5(b)に示すように、カウンタ151のカウント値が「10」へと変化する。
カウント値が「10」となったことに伴い、図5(f)に示すように、at_cen信号はハイレベルとなり、ホストシステム4がRAM9にアクセス不能となる。一方、図5(e)に示すように、fs1_cen信号はローレベルとなり、フラッシュメモリ2BがRAM9にアクセス可能となる。
また、図5(g)に示すように、RAMアドレス生成部153は、フラッシュメモリ2Bが読み出そうとするデータのRAM9におけるアドレスを生成し、RAM9に供給する。
時刻t4において、図5(a)に示すように、内部クロックUCLKが立ち上がると、図5(i)に示すように、RAM9は、フラッシュメモリ2Bが読み出そうとするデータを出力する。フラッシュメモリ2Bは、フラッシュメモリインターフェースブロック10を介してこのデータを取得する。また、カウンタ151のカウント値が「11」へと変化する。
カウント値が「11」となったことに伴い、図5(d)に示すように、fs1_cen信号はハイレベルとなり、フラッシュメモリ2BがRAM9にアクセス不能となる。一方、図5(f)に示すように、at_cen信号はローレベルとなり、ホストシステム4がRAM9にアクセス可能となる。
また、図5(g)に示すように、RAMアドレス生成部153は、ホストシステム4が書き込もうとするデータのRAM9におけるアドレスを生成し、RAM9に供給する。
以後、同様にして、時刻t5においてはフラッシュメモリ2Aが、時刻t6においてはホストシステム4が、RAM9にアクセス可能とされる。
このように、本実施の形態のフラッシュメモリシステム1では、ホストシステム4、フラッシュメモリ2A及び2BによるRAM9へのアクセスを、内部クロックUCLKに同期させてフラッシュメモリ2A、ホストシステム4、フラッシュメモリ2B、ホストシステム4、・・・という順で、順次許可する。
通常、RAM9を介したデータの送受信は、ホストシステム4とフラッシュメモリ2A又は2Bのいずれかとの間で行われる。既に説明したように、仮想ページアドレスにおける偶数ページがフラッシュメモリ2Aの物理ページアドレスに対応し、仮想ページアドレスにおける奇数ページがフラッシュメモリ2Bの物理ページアドレスに対応する。このため、仮想的なアドレス空間における連続したページが、フラッシュメモリ2Aと2Bに交互に割り振られる。又、RAM9とフラッシュメモリ2Aとの間のデータ転送と、RAM9とフラッシュメモリ2Bとの間のデータ転送が、ホストシステム4のアクセス期間を挟んで交互に行われている。
そして、読み出し処理や書き込み処理では、フラッシュメモリ2A又は2BとRAM9との間の複数回のデータ転送で、1セクタ分のデータ転送が終了する。例えば、RAM9に対する1回のアクセスで8バイトのデータが入力又は出力される場合、64回のアクセスで1セクタ分のデータ転送が終了する。
本実施の形態のフラッシュメモリシステム1では、RAM9へのアクセスが、フラッシュメモリ2A、ホストシステム4、フラッシュメモリ2B、ホストシステム4、・・・という順で、順次許可される。すなわち、フラッシュメモリ2Aと2Bに着目した場合、両者は交互にアクセスを許可される。また、フラッシュメモリ2A及び2Bで構成される仮想的なアドレス空間と、ホストシステム4とに着目した場合、RAM9へのアクセスが許可される時間は、両者で等しくなる。このような本実施の形態のフラッシュメモリシステム1では、ホストシステム4がフラッシュメモリ2に効率的にアクセスすることができる。
なお、上記の実施の形態では、二つのフラッシュメモリが一つの仮想的なアドレス空間を構成する場合を例に説明したが、一つの仮想的なアドレス空間を構成するフラッシュメモリの数は二つに限らず、更に多数であってもかまわない。
例えば、N個のフラッシュメモリで一つの仮想的なアドレス空間を構成する場合には、RAM制御ブロック15が有するカウンタ151を2×N進のカウンタとすればよい。そして、カウント値が偶数のときにはN個のフラッシュメモリのうちの一つにRAM9へのアクセスを許可し、カウント値が奇数のときにはホストシステム4にRAM9へのアクセスを許可するようにすばよい。
本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。 フラッシュメモリのアドレス空間の構造を概略的に示す図である。 二つのフラッシュメモリにより構成される仮想的なアドレス空間における、ページアドレスの割り当てを説明する図である。 RAM制御ブロックの構成を示すブロック図である。 コントローラが備えるRAMへの時分割アクセスを実現するための動作を説明するためのタイミングチャートである。
符号の説明
1 フラッシュメモリシステム
2A フラッシュメモリ
2B フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 RAM
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 RAM制御ブロック
16A フラッシュメモリシーケンサブロック
16B フラッシュメモリシーケンサブロック
25 ユーザ領域
26 冗長領域

Claims (6)

  1. N個のフラッシュメモリを仮想的な一つのアドレス空間として利用するホストシステムからの命令に応答して前記N個のフラッシュメモリへのアクセスを制御するメモリコントローラであって、
    前記ホストシステムが前記フラッシュメモリに格納しようとするデータ、及び、前記ホストシステムが前記フラッシュメモリから読み出そうとするデータを、一時的に格納するバッファ部と、
    前記N個のフラッシュメモリのうちのいずれか一つ又は前記ホストシステムに、前記バッファ部に対するアクセスを許可する、バッファ制御部と、を備え、
    前記バッファ制御部は、第1のフラッシュメモリ、前記ホストシステム、第2のフラッシュメモリ、前記ホストシステム、・・・、第N−1のフラッシュメモリ、前記ホストシステム、第Nのフラッシュメモリ、前記ホストシステム、の順で、順次前記バッファ部に対するアクセスを許可する、
    ことを特徴とするメモリコントローラ。
  2. 前記バッファ制御部は、前記メモリコントローラの動作の基準となる内部クロックに同期して、前記バッファ部へのアクセスを許可する対象を切り替える、
    ことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記内部クロックをカウントするN×2進のカウンタを更に備え、
    前記バッファ制御部は、前記カウンタのカウント値に応じて、前記バッファ部へのアクセスを許可する対象を切り替える、
    ことを特徴とする請求項2に記載のメモリコントローラ。
  4. 前記バッファ部は、各段が1セクタ分の記憶容量を有する複数段のFIFO(First In First Out)メモリで構成される、
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。
  5. 請求項1、2又は3に記載のメモリコントローラと、N個のフラッシュメモリと、から構成される、
    ことを特徴とするフラッシュメモリシステム。
  6. 第1から第NまでのN個のフラッシュメモリを仮想的な一つのアドレス空間として利用するホストシステムからの命令に応答して、前記N個のフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
    前記ホストシステムが前記フラッシュメモリに格納しようとするデータ及び前記ホストシステムが前記フラッシュメモリから読み出そうとするデータを一時的に格納するバッファ部に対するアクセスを、前記ホストシステムに許可するホストアクセス許可ステップと、
    前記バッファ部に対するアクセスを、前記N個のフラッシュメモリのうちの一つに許可するフラッシュアクセス許可ステップと、を備え、
    前記ホストアクセス許可ステップと前記フラッシュアクセス許可ステップとは、交互に繰り返し実行され、
    前記フラッシュアクセス許可ステップは、繰り返し実行される毎に、前記第1から第Nのフラッシュメモリに対し順次、前記バッファ部へのアクセスを許可する、
    ことを特徴とするフラッシュメモリの制御方法。
JP2005252914A 2005-08-31 2005-08-31 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Expired - Fee Related JP4273106B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005252914A JP4273106B2 (ja) 2005-08-31 2005-08-31 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005252914A JP4273106B2 (ja) 2005-08-31 2005-08-31 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2007066119A true JP2007066119A (ja) 2007-03-15
JP4273106B2 JP4273106B2 (ja) 2009-06-03

Family

ID=37928213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005252914A Expired - Fee Related JP4273106B2 (ja) 2005-08-31 2005-08-31 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4273106B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458394B2 (en) 2009-03-18 2013-06-04 Samsung Electronics Co., Ltd. Storage device and method of managing a buffer memory of the storage device
KR101454948B1 (ko) * 2007-10-17 2014-10-27 마이크론 테크놀로지, 인크. 동기식 직렬 인터페이스 nand를 위한 설정 액세스 및 변경을 위한 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101454948B1 (ko) * 2007-10-17 2014-10-27 마이크론 테크놀로지, 인크. 동기식 직렬 인터페이스 nand를 위한 설정 액세스 및 변경을 위한 시스템 및 방법
US8458394B2 (en) 2009-03-18 2013-06-04 Samsung Electronics Co., Ltd. Storage device and method of managing a buffer memory of the storage device

Also Published As

Publication number Publication date
JP4273106B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
JP5021220B2 (ja) 不揮発性メモリ装置及びそのマルチページコピーバック方法
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP2006243780A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661369B2 (ja) メモリコントローラ
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007094571A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4641338B2 (ja) 不揮発性半導体記憶装置及びシステム
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006155335A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2008102693A (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4640366B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4670370B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4273038B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4539621B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4304167B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

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

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

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees