(57)【特許請求の範囲】
【請求項１】
不揮発性メモリへのデータの書き込み及び前記不揮発性メモリからのデータの読み出しを行うメモリコントローラであって、
外部との通信を行うフロントエンド部と、
メモリコントローラの各部の動作を制御するコア制御部と、
前記不揮発性メモリへの読み書き制御を行うバックエンド部と、
第１のポートに入力された識別信号に基づき、メモリコントローラを単独で機能させるか複数併行して機能させるかを決定するモード検知部と、
第２のポートに入力された識別信号に基づき、メモリコントローラをマスタ及びスレーブのいずれのコントローラとして用いるかを決定するＭＳ検知部とを備え、
前記コア制御部は、
前記モード検知部がメモリコントローラを複数併行して機能させることを決定し、かつ前記ＭＳ検知部がマスタコントローラとして用いることを決定した場合は、前記フロントエンド部が外部から受信したデータを、前記不揮発性メモリに記録されたＩＤコードに基づき、所定のサイズ毎に、前記バックエンド部及びデータの転送を行う第３のポートに振り分けて転送し、
前記モード検知部がメモリコントローラを複数併行して機能させることを決定し、かつ前記ＭＳ検知部がスレーブコントローラとして用いることを決定した場合は、前記第３のポートから入力されたデータを前記バックエンド部に転送し、
前記モード検知部がメモリコントローラを単独で機能させることを決定した場合は、前記フロントエンド部が外部から受信したデータを、前記第３のポートに振り分けて転送しないことを特徴とするメモリコントローラ。
【請求項２】
前記コア制御部がデータを振り分ける所定のサイズは、書き込みの単位であるページサイズもしくはページサイズ×Ｎ（Ｎはマルチページプログラム機能におけるマルチ数）であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記第１ポート及び第２ポートに入力される識別信号は、メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであることを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記第１ポートに入力される識別信号は、メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであり、前記第２ポートに入力される識別信号は、外部デバイスから供給される信号であることを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項５】
不揮発性メモリ及びメモリコントローラを含むメモリモジュールを少なくとも２つ備え、前記各メモリコントローラは、
外部との通信を行うフロントエンド部と、
前記メモリコントローラの各部の動作を制御するコア制御部と、
前記不揮発性メモリへのデータの書き込み及び前記不揮発性メモリからのデータの読み出しを制御するバックエンド部と、
第１のポートに入力された識別信号に基づき、前記メモリコントローラを単独で機能させるか複数併行して機能させるかを決定するモード検知部と、
第２のポートに入力された識別信号に基づき、前記メモリコントローラをマスタ及びスレーブのいずれのコントローラとして用いるかを決定するＭＳ検知部とで構成され、かつ
前記各メモリコントローラのモード検知部及びＭＳ検知部の決定により、前記メモリコントローラのうち１つをマスタコントローラとして用い、他をスレーブコントローラとして用い、
マスタコントローラとして用いるメモリコントローラを含む前記メモリモジュールのコア制御部は、前記フロントエンド部が外部から受信したデータを、前記不揮発性メモリに記録されたＩＤコードに基づき、所定のサイズ毎に、前記バックエンド部及びデータの転送を行う第３のポートに振り分けて転送し、
スレーブコントローラとして用いるメモリコントローラを含む前記メモリモジュールのコア制御部は、前記第３のポートから入力されたデータを前記バックエンド部に転送することを特徴とする不揮発性記憶装置。
【請求項６】
前記コア制御部がデータを振り分ける所定のサイズは、前記不揮発性メモリへのデータ書き込みの単位であるページサイズであることを特徴とする請求項５に記載の不揮発性記憶装置。
【請求項７】
前記各メモリコントローラの第１ポート及び第２ポートに入力される識別信号は、前記各メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであることを特徴とする請求項５又は６に記載の不揮発性記憶装置。
【請求項８】
マスタコントローラとして用いるメモリコントローラを含む前記メモリモジュールで用いる識別信号は、前記メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであり、
スレーブコントローラとして用いるメモリコントローラを含む前記メモリモジュールで用いる識別信号は、外部デバイスから供給される信号であることを特徴とする請求項５又は６に記載の不揮発性記憶装置。
【請求項９】
請求項５〜８のいずれかに記載の不揮発性記憶装置と、前記不揮発性記憶装置のアクセス制御を行うアクセス装置と、を備えた不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリを備えた不揮発性記憶装置、これを制御するメモリコントローラ及び不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性の主記憶メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。この半導体メモリカードは、不揮発性メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパソコン（パーソナルコンピュータ）本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行う。
【０００３】
ところで、半導体メモリカードは、表１に示すように、書き込み速度が低速で廉価なもの（タイプＳとする）と、書き込み速度が高速で高価なもの（タイプＭとする）の２種類に大別できる。タイプＳは、主にパソコンなどの比較的低速アクセスでよいシステムに用いられ、タイプＭは、主に動画記録再生装置などの高速アクセスを必要とするシステムに用いられる。
【０００４】
【表１】
0004794949.tif 000002
【０００５】
これら２種類の半導体メモリカードの構成方法として、タイプＳを構成する際は、フラッシュメモリが１チップ実装され、更にこのフラッシュメモリのアクセス制御を行うメモリコントローラとして、フラッシュメモリと１つのメモリバスを介してアクセスを行うシングルバスコントローラ（以下、コントローラ１とする）が１チップ実装される。一方、タイプＭを構成する際は、フラッシュメモリが２チップ以上実装され、更にマルチバスコントローラ（以下、コントローラ２とする）が実装され、コントローラ２の各バスに各フラッシュメモリが独立に接続される。
【０００６】
しかし、このようにタイプＳ、Ｂ毎に異なるメモリコントローラを開発した場合、メモリコントローラの開発費用が嵩むといった問題点がある。
【０００７】
この問題点に対応する従来技術として、タイプによらず汎用的なメモリコントローラを流用する方法が提案されている（特許文献１）。この方法によれば、ブロックコントローラと呼ばれる汎用的なコントローラと、カメラ本体などのアクセス装置とのインタフェースであるインタフェースと、ブロックコントローラ全体を制御するマスタコントローラの３種類の回路部を備え、タイプＳを実現する際はブロックコントローラを一つ実装し、タイプＭを実現する際はブロックコントローラを複数実装するといったものである。ブロックコントローラなどの各回路部は、タイプＳ、Ｂに関わらず同じものが使用できる。言い換えれば、各回路部をタイプＳ，Ｂ毎に開発する必要がないので、開発費用も削減できるし、更に量産効果も期待できる。
【特許文献１】特開平０４−２６８２８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の不揮発性記憶システムでは、タイプＭの一例として、２個のフラッシュメモリを同時にアクセスできる高速カードを実現する場合、メモリコントローラとして、最低下記の３チップが必要となり、マスターチップがアクセス装置から受信したデータをブロックコントローラに分配し、各々のブロックコントローラが併行してデータをフラッシュメモリに書き込んでいるため、左程のコストダウンは期待できない。
・マスターチップ（インタフェースおよびマスタコントローラを含む）
・ブロックコントローラ（表１のコントローラ１に相当）
・ブロックコントローラ（表１のコントローラ１に相当）
【０００９】
更に、上記システムでは、マスターチップがアクセス装置から受信したデータをブロックコントローラに分配し、各々のブロックコントローラが併行してデータを書き込んでいるが、分配するデータサイズがクラスタ単位であり、フラッシュメモリの書き込み単位であるページサイズと異なるため、書き込みのパフォーマンスが劣るという問題点があった。
【００１０】
本発明は上記問題点に鑑み、従来よりもチップ数が少なく、より低コストのシステムを実現でき、更にフラッシュメモリの種類に応じてパフォーマンス面で最適なデータの振り分けが行えるメモリコントローラ、不揮発性記憶装置及び不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明のメモリコントローラは、不揮発性メモリへのデータの書き込み及び前記不揮発性メモリからのデータの読み出しを行うメモリコントローラであって、
外部との通信を行うフロントエンド部と、
メモリコントローラの各部の動作を制御するコア制御部と、
前記不揮発性メモリへの読み書き制御を行うバックエンド部と、
第１のポートに入力された識別信号に基づき、メモリコントローラを単独で機能させるか複数併行して機能させるかを決定するモード検知部と、
第２のポートに入力された識別信号に基づき、メモリコントローラをマスタ及びスレーブのいずれのコントローラとして用いるかを決定するＭＳ検知部とを備え、
前記コア制御部は、
前記モード検知部がメモリコントローラを複数併行して機能させることを決定し、かつ前記ＭＳ検知部がマスタコントローラとして用いることを決定した場合は、前記フロントエンド部が外部から受信したデータを、前記不揮発性メモリに記録されたＩＤコードに基づき、所定のサイズ毎に、前記バックエンド部及びデータの転送を行う第３のポートに振り分けて転送し、
前記モード検知部がメモリコントローラを複数併行して機能させることを決定し、かつ前記ＭＳ検知部がスレーブコントローラとして用いることを決定した場合は、前記第３のポートから入力されたデータを前記バックエンド部に転送し、
前記モード検知部がメモリコントローラを単独で機能させることを決定した場合は、前記フロントエンド部が外部から受信したデータを、前記第３のポートに振り分けて転送しないことを特徴とする。
【００１２】
上記本発明のメモリコントローラにおいて、前記コア制御部がデータを振り分ける所定のサイズは、書き込みの単位であるページサイズもしくはページサイズ×Ｎ（Ｎはマルチページプログラム機能におけるマルチ数）であることが好ましい。
【００１３】
また本発明のメモリコントローラにおいて、前記第１ポート及び第２ポートに入力される識別信号は、メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであってもよい。
同様に、前記第１ポートに入力される識別信号は、メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであり、前記第２ポートに入力される識別信号は、外部デバイスから供給される信号であってもよい。
【００１４】
また本発明の不揮発性記憶装置は、
不揮発性メモリ及びメモリコントローラを含むメモリモジュールを少なくとも２つ備え、前記各メモリコントローラは、
外部との通信を行うフロントエンド部と、
前記メモリコントローラの各部の動作を制御するコア制御部と、
前記不揮発性メモリへのデータの書き込み及び前記不揮発性メモリからのデータの読み出しを制御するバックエンド部と、
第１のポートに入力された識別信号に基づき、前記メモリコントローラを単独で機能させるか複数併行して機能させるかを決定するモード検知部と、
第２のポートに入力された識別信号に基づき、前記メモリコントローラをマスタ及びスレーブのいずれのコントローラとして用いるかを決定するＭＳ検知部とで構成され、かつ
前記各メモリコントローラのモード検知部及びＭＳ検知部の決定により、前記メモリコントローラのうち１つをマスタコントローラとして用い、他をスレーブコントローラとして用い、
マスタコントローラとして用いるメモリコントローラを含む前記メモリモジュールのコア制御部は、前記フロントエンド部が外部から受信したデータを、前記不揮発性メモリに記録されたＩＤコードに基づき、所定のサイズ毎に、前記バックエンド部及びデータの転送を行う第３のポートに振り分けて転送し、
スレーブコントローラとして用いるメモリコントローラを含む前記メモリモジュールのコア制御部は、前記第３のポートから入力されたデータを前記バックエンド部に転送することを特徴とする。
【００１５】
上記本発明の不揮発性記憶装置において、前記コア制御部がデータを振り分ける所定のサイズは、前記不揮発性メモリへのデータ書き込みの単位であるページサイズであることが好ましい。
【００１６】
また本発明の不揮発性記憶装置において、前記各メモリコントローラの第１ポート及び第２ポートに入力される識別信号は、前記各メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであってもよい。
【００１７】
同様に、マスタコントローラとして用いるメモリコントローラを含む前記メモリモジュールで用いる識別信号は、前記メモリコントローラに供給される電源電圧に応じて変化する電圧レベルであり、
スレーブコントローラとして用いるメモリコントローラを含む前記メモリモジュールで用いる識別信号は、外部デバイスから供給される信号であってもよい。
【発明の効果】
【００１８】
本発明によれば、表１のタイプＭの一例として、２個のフラッシュメモリを同時にアクセスできる高速カードを実現する場合、メモリコントローラとして、２つのメモリモジュールで実現できる。
【００１９】
具体的には、フロントエンド部（従来のインタフェースに相当）とコア制御部（従来のマスタコントローラに相当）とバックエンド部（従来のブロックコントローラに相当）を１チップ化したメモリモジュールを２つ備え、更にそれぞれのメモリモジュール内に検知部を備えることにより、それぞれのメモリコントローラをマスタ及びスレーブコントローラとして機能させる。更にマスタコントローラ内のフロントエンド部が一括して外部のアクセス装置との通信を行い、外部のアクセス装置から受信した書き込みデータをマスタコントローラとスレーブコントローラに分配するようにしたので、表２に示すように、従来よりもチップ数の少ない、より低コストのシステムを実現できる。
【００２０】
更に本発明では、書き込みデータをマスタコントローラとスレーブコントローラに分配する際のデータサイズを、前記コア制御部が、不揮発性メモリが予め保持しているＩＤコードに基づいて決定しており、不揮発性メモリの書き込み単位サイズに対応させたので、フラッシュメモリの種類、例えば書き込み単位であるページサイズの違いによらず、最適な書き込みパフォーマンスを得ることができる。
【００２１】
【表２】
0004794949.tif 000003
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態における不揮発性記憶システムについて、図面を参照して具体的に説明する。
（実施の形態１）
【００２３】
図１は、本発明の実施の形態１における不揮発性記憶システムのブロック図である。不揮発性記憶システムは不揮発性記憶装置１０１とそれが接続されたアクセス装置１００とからなる。また不揮発性記憶装置１０１は、基板１０２と、その上に実装されたメモリモジュール１０３及び１０４、アクセス装置１００との間でデータの転送を行う外部バス１０５で構成される。
【００２４】
メモリモジュール１０３は、メモリコントローラ１１０と、フラッシュメモリからなる不揮発性メモリ１３０（本実施の形態では記憶容量５１２ＭＢ）を備えている。同様に、メモリモジュール１０４は、メモリコントローラ１４０と、フラッシュメモリからなる不揮発性メモリ１６０（同記憶容量５１２ＭＢ）とを備えている。
【００２５】
メモリコントローラ１１０は、フロントエンド部１１１と、コア制御部１１２、バックエンド部１１３、モード検知部１１４、ＭＳ検知部１１５、Ａ１ポート１１６、Ａ２ポート１１７、Ｂポート１１８及び内部バス１１９とを有している。
【００２６】
なお、メモリコントローラの動作モードにはシングルモードとマルチモードがあり、前者は、ひとつのメモリコントローラ（例えばメモリコントローラ１１０）だけが機能するモードであり、後者はメモリコントローラ１１０とメモリコントローラ１４０が併行して機能するモードでる。またＭＳとはマスタ／スレーブの略号である。
【００２７】
Ａ１ポート１１６と、Ａ２ポート１１７は、いずれも初期設定用のポートであり、Ｂポート１１８はメモリコントローラ１１０とメモリコントローラ１４０間の通信に利用されるポートである。
【００２８】
フロントエンド部１１１は、ホストインタフェース部１２０と、不揮発性メモリ１３０へアクセスする際にデータを一時記憶するためのバッファメモリ１２１とを備えている。コア制御部１１２は、メモリコントローラ１１０全体の制御を行うＣＰＵ１２２と、ＣＰＵ１２２の作業領域であるＲＡＭ１２３と、ＣＰＵ１２２が実行するプログラムを格納したＲＯＭ１２４とを備えている。
【００２９】
バックエンド部１１３は、不揮発性メモリ１３０のアドレスを指定するアドレス管理部１２５と、不揮発性メモリ１３０へのデータを書き込みや不揮発性メモリ１３０からのデータの読み出し制御を行うための読み書き制御部１２６を備えている。
【００３０】
なお、アドレス管理部１２５の内部には、アクセス装置１００が転送した論理アドレスを不揮発性メモリ１３０内の物理アドレスに変換するための論理−物理変換テーブルや、不揮発性メモリ１３０を構成する各物理ブロックのステータスを記憶するための物理領域管理テーブルが含まれるが、これらは既に実用に供されており、本実施の形態においても従来と同様の回路構成で実現しているため、説明を省略する。
【００３１】
Ａ１ポート１１６やＡ２ポート１１７は、基板１０２上の電源電圧を識別信号として入力するポートであり、Ｂポート１１８は、バッファメモリ１２１内に一時記憶されたデータの一部をメモリモジュール１０４へ転送するポートである。
【００３２】
モード検知部１１４は、Ａ１ポート１１６を介して入力された識別信号に基づき、メモリコントローラ１１２が単独で機能するか（以下、シングルモードとする）、あるいはメモリコントローラと併行して機能するか（以下、デュアルモードとする）を決定する回路ブロックである。
【００３３】
ＭＳ検知部１１５は、Ａ２ポート１１７を介して入力された識別信号に基づき、メモリコントローラ１１０をマスタコントローラとして用いるか、スレーブコントローラとして用いるかを決定する回路ブロックである。なお基板１０２上の電源は、アクセス装置１００から供給されるものである。
【００３４】
メモリモジュール１０４は、メモリモジュール１０３と対となるモジュールであり、基本的な構成は同一であるので、構成の説明は省略する。相違点については、後述する動作説明において詳細に説明する。
【００３５】
図２は、メモリコントローラ１１０の初期化処理を示したフローチャートである。図２において実線で示した処理が、図１に示した場合、すなわちＡ１ポート１１６とＡ２ポート１１７の両者ともに電源電圧（以降Ｖｃｃとする）が設定された場合の処理に対応する。
【００３６】
一方、図３は、メモリコントローラ１４０の初期化処理を示したフローチャートである。図３において実線で示した処理が、図１に示した場合、すなわちＡ１ポート１４６にＶｃｃが設定され、Ａ２ポート１４７にグランド電圧（以降ＧＮＤとする）が設定された場合の処理に対応する。
【００３７】
以上説明した図面に基づいて、アクセス装置１００から書き込み命令が発せられた場合の不揮発性記憶装置１０１の動作を以下に説明する。
［電源立ち上げ時の初期化処理］
【００３８】
メモリコントローラ１１０は、図２に示すフローチャートに従って初期化処理を行う。
まず、アクセス装置１００が不揮発性記憶装置１０１に電源を供給した後（Ｓ２００）、モード検知部１１４がＡ１ポート１１６の電圧を検知する（Ｓ２０１）。図１において、Ａ１ポート１１６にはＶｃｃが印加されているので、モード検知部１１４がモードフラグを値１にセットするとともに（Ｓ２０２）、モード検知部１１４がＣＰＵ１２２にモードフラグ（値１）を転送し、ＣＰＵ１２２はデュアルモードであることを認識する（Ｓ２０３）。
【００３９】
次に、ＭＳ検知部１１５がＡ２ポート１１７の電圧を検知する（Ｓ２０４）。図１において、Ａ２ポート１１７にはＶｃｃが印加されているので、ＭＳ検知部１１５がＭＳフラグを値１にセットするとともに（Ｓ２０５）、ＭＳ検知部１１５がＣＰＵ１２２にＭＳフラグ（値１）を転送し、ＣＰＵ１２２はマスタコントローラであることを認識する（Ｓ２０６）。マスタコントローラは、アクセス装置１００とのインタフェースを一括して行うコントローラであるので、フロントエンド部１１１を機能させることとなる（Ｓ２０７）。
【００４０】
コア制御部１１２は、不揮発性メモリ１３０から読み込んだＩＤコードと自己の保有するテーブルの内容を参照して不揮発性メモリ１３０のページサイズを認識し、このページサイズに基づいて振り分けサイズを決定する（Ｓ２０８）。決定した振り分けサイズはＲＡＭ１２３に一時記憶しておく。
【００４１】
なお、本実施の形態１においては、ページサイズと振り分けサイズが等しくなるように制御するが、特にこれに限定されるものではない。また、図１に示す不揮発性記憶システムにおいては、ページサイズが２ｋＢｙｔｅの不揮発性メモリ１３０、１６０を使用するので、振り分けサイズは２ｋＢｙｔｅとなる。一方、不揮発性メモリ１３０、１６０として３２ＭＢのフラッシュメモリを使用した不揮発性記憶システムにおいては、通常、ページサイズが５１２Ｂｙｔｅであるので、振り分けサイズは５１２Ｂｙｔｅとなる。
【００４２】
その後、従来の不揮発性記憶システムで一般的に行われている各種初期化処理（論理物理変換テーブルなどの作成）を実行し処理を終わる（Ｓ２１２）。なお、各種初期化処理については説明を省略する。
【００４３】
ここで、モードフラグとＭＳフラグのそれぞれの値に対応した動作モードを表３に示す。表３において、モードフラグが値０の場合は、ＭＳフラグの値に関わらずシングルモードとなる。シングルモードとは、シングルモードが設定されたメモリコントローラが単独で機能するモードであり、例えばメモリコントローラ１１０がシングルモードに設定された場合はメモリモジュール１０３のみが記憶装置として機能する。すなわち不揮発性記憶装置１０１は、本実施の形態では５１２ＭＢの記憶装置となる。
【００４４】
なお、シングルモードとして使用する場合は、不揮発性記憶装置１０１にはひとつのメモリモジュールしか実装されない。一方、メモリコントローラ１１０および１４０がデュアルモードに設定された場合は、どちらか一方がマスタコントローラ（ＭＳフラグ＝１）に、もう一方がスレーブコントローラ（ＭＳフラグ＝０）に設定される。
【００４５】
【表３】
0004794949.tif 000004
【００４６】
メモリコントローラ１１０の初期化処理と併行して、メモリコントローラ１４０の初期化処理がなされる（図３参照）。メモリコントローラ１４０はメモリコントローラ１１０と異なり、Ａ２ポート１４７がＧＮＤに設定されるため、Ｓ３１０とＳ３１１の処理により、スレーブコントローラとして設定される。この場合、メモリコントローラ１１０のフロントエンド部１１１が一括してアクセス装置１００との通信処理をおこなうので、Ｓ３１１においてフロントエンド部１４１の機能を停止させることとなる。なお、メモリコントローラ１４０は、不揮発性メモリ１６０への書き込み等に必要な情報はＢポート１４８を介してメモリコントローラ１１０から受信することとなる。
［通常動作時の処理］
【００４７】
前述した初期化処理の後、通常動作に移行する。
図４（Ａ）にシングルモードにおける書き込み処理を示し、図５（Ａ）にシングルモードにおける論理アドレスＬＡのフォーマットを示す。図５（Ａ）に示すように、下位ビットから順に、セクタ番号、ページ番号、論理ブロックアドレスＬＢＡが割り当てられており、論理ブロックアドレスＬＢＡに対応する１１ビット分がアドレス変換の対象、すなわち論理−物理変換テーブルのアドレスに相当する。アクセス装置１００で規定されるセクタサイズは５１２Ｂｙｔｅであり、不揮発性メモリ１３０を構成する物理ブロック（図４参照）の各ページには、４セクタずつ記憶される。
【００４８】
一方、図４（Ｂ）にデュアルモードにおける書き込み処理を示し、図５（Ｂ）にデュアルモードにおける論理アドレスＬＡのフォーマットを示す。図５（Ａ）と異なる点は、ＭＳ振り分けフラグが論理アドレスＬＡのビット２（以降ＬＡ［２］とする）に追加された点である。
【００４９】
図４（Ａ）に示すシングルモードの場合は、例えばアクセス装置１００から、ＬＡ０〜３１に対応する１６ｋＢｙｔｅ分の書き込み命令が転送されると、書き込みデータはバッファメモリ１２１を介して、不揮発性メモリ１３０の所定の物理ブロック１３１の先頭ページから順番に書き込まれる。
【００５０】
これに対し、図４（Ｂ）に示すデュアルモードの場合、すなわち図１に示す実施の形態においては、ページサイズと振り分けサイズ共に２ｋＢｙｔｅである。この場合は図５（Ｂ）に示す論理アドレスフォーマットのＬＡ［２］の値に応じて、書き込み先の切替え制御を行う。
【００５１】
ＬＡ［２］＝０の場合は、バッファメモリ１２１に一時記憶された２ｋＢｙｔｅのデータを不揮発性メモリ１３０に書き込み、ＬＡ［２］＝１の場合は、バッファメモリ１２１に一時記憶されたデータを不揮発性メモリ１６０に書き込む。
【００５２】
データの振り分け制御を行うため、ＣＰＵ１２２は、アクセス装置１００が転送したＬＡ０〜３１のＬＡ［２］を逐次チェックし、例えばＬＡ［２］＝１に対応するデータを、Ｂポート１１８、１４８を介してメモリコントローラ１４０内の内部バス１４９に転送する。転送されたデータは読み書き制御部１５６を介して不揮発性メモリ１６０の所定の物理ブロック１６１に書き込まれる。
【００５３】
図６は書き込み処理を示すタイムチャートであり、本実施の形態のようにページサイズが２ｋＢｙｔｅの不揮発性メモリ１３０、１６０を搭載したシステムにおいて、メモリモジュール１１０とメモリモジュール１４０へのデータの振り分けサイズを２ｋＢｙｔｅとした場合を示す。論理アドレスＬＡ０から４ｋＢｙｔｅ分のデータを書き込むまでの時間は、図６の書き込み処理時間Ｔ１１に対応する。
【００５４】
図６において、ａはアクセス装置１００からバッファメモリ１２１への一時記憶状態を表し、先頭から順番に論理アドレスＬＡ０、ＬＡ１・・・と一時記憶される。
図６のｂは不揮発性メモリ１３０への書き込みを表す。ハッチング部分が読み書き制御部１２６から不揮発性メモリ１３０への転送期間であり、その直後のProgram Busyと書かれた期間が不揮発性メモリ１３０へ書き込み期間となる。なお、アクセス装置１００からバッファメモリ１２１への転送レート、および読み書き制御部１２６から不揮発性メモリ１３０への転送レート共に約２５ＭＢｙｔｅ／ｓとする。また不揮発性メモリ１６０の書き込みに要する時間は５００μＳｅｃとする。
【００５５】
図６のｃは不揮発性メモリ１６０への書き込みを表し、ハッチング部分が読み書き制御部１２６から不揮発性メモリ１６０への転送期間であり、その直後が不揮発性メモリ１６０へ書き込み期間となる。
【００５６】
以上のように本実施の形態１によれば、電源立ち上げ時の初期化処理においてモード検知部１１４とＭＳ検知部１１５が、ＶｓｓあるいはＧＮＤなどの電圧に応じて、マスタコントローラかスレーブコントローラを識別できるようにし、更に、マスタコントローラと識別した側のメモリコントローラ、すなわちメモリコントローラ１１０の内部になるフロントエンド部１１１が一括してアクセス装置１００との通信を行い、論理アドレスに応じて書き込み先の不揮発性メモリを振り分けるように制御したので、共通のメモリコントローラを用いて簡単に異なる不揮発性メモリに並列に書き込むこととなる。言い換えれば、表２のタイプＳに対応するメモリコントローラを流用して、最小限のチップ数でタイプＭのシステムも構成することが可能となる。
【００５７】
また、コア制御部１１２が不揮発性メモリ１３０のＩＤコードに基づいて振り分けサイズを決定し、当該サイズ単位でマスタコントローラ１１０とスレーブコントローラ１４０への振り分けを行うようにしたので、クラスタ単位でデータを分配する従来技術に比較し、書き込みパフォーマンスの大幅な改善が可能となる。
【００５８】
なお、フラッシュメモリにはマルチページプログラム機能を備えたものがあり、この場合、例えばＩ／Ｏレジスターを２個備え、２ページ分を同時に書き込むことができる。このため不揮発性記憶メモリとして、マルチページプログラム機能を備えたフラッシュメモリを使用する場合、Ｉ／Ｏレジスターの数に応じて振り分けサイズを拡大することができる。例えばＩ／Ｏレジスターが２個の場合、振り分けサイズは４ｋＢｙｔｅとなる。
【００５９】
また、本実施の形態１において、図１に示す不揮発性メモリ１３０と１６０は同じ種類の不揮発性メモリである必要がある。但し、不揮発性メモリ１３０と１６０が異なる種類の不揮発性メモリであっても、コア制御部１１２が両者のＩＤコードに基づいて、それぞれへの振り分けサイズを決定するようにすればよい。
（実施の形態２）
【００６０】
上述した実施の形態１では、不揮発性メモリ１３０，１６０の記憶容量が５１２ＭＢ、デュアルモードにおけるページサイズ（書き込み単位）、振り分けサイズ共に２ｋＢｙｔｅであったが、本実施の形態では、記憶容量が３２ＭＢの不揮発性メモリ１３０、１６０を用い、デュアルモードにおけるページサイズ（書き込み単位）は５１２ｋＢｙｔｅである。またメモリモジュール１０３とメモリモジュール１０４へのデータの振り分けサイズもページサイズにあわせて５１２Ｂｙｔｅとする。その他のブロックは図１と同様である。
【００６１】
図７は、本実施の形態において不揮発性記憶システムをデュアルモードで動作させた場合の書き込み処理を示した図であり、図８は、デュアルモードにおける論理アドレスＬＡのフォーマットを示した図である。
【００６２】
図８に示すように、下位ビットから順に、ＭＳ振り分けフラグ（以降ＬＡ［０］とする）、ページ番号、論理ブロックアドレスＬＢＡが割り当てられており、論理ブロックアドレスＬＢＡに対応する１１ビット分がアドレス変換の対象、すなわち論理−物理変換テーブルのアドレスに相当する。アクセス装置１００で規定されるセクタサイズは５１２Ｂｙｔｅであり、図７に示した不揮発性メモリ１３０、１６０を構成する物理ブロック１３１、１６１の各ページには、１セクタずつ記憶される。
【００６３】
本実施の形態で、論理アドレスフォーマットのＬＡ［０］の値に応じて、書き込み先の切替え制御を行う。ＬＡ［０］＝０の場合は、バッファメモリ１２１に一時記憶されたデータを不揮発性メモリ1３０に書き込み、ＬＡ［０］＝１の場合は、バッファメモリ１２１に一時記憶されたデータを不揮発性メモリ１６０に書き込む。
【００６４】
データの振り分け制御を行うため、ＣＰＵ１２２は、アクセス装置１００が転送したＬＡ０〜３１のＬＡ［０］を逐次チェックし、例えばＬＡ［０］＝１に対応するデータを、Ｂポート１１８、１４８を介してメモリコントローラ１４０内の内部バス１４９に転送する。転送されたデータは読み書き制御部１５６を介して不揮発性メモリ１６０の所定の物理ブロック１６１に書き込まれる。
【００６５】
図９（Ａ）は、本実施の形態２における書き込み処理のタイムチャートである。一方、図９（Ｂ）に、参考としてページサイズが５１２Ｂｙｔｅ、メモリモジュール１０３とメモリモジュール１０４へのデータの振り分けサイズが２ｋＢｙｔｅの場合のタイムチャートを示す。図６と同様、図９（Ａ）、（Ｂ）において、ａはアクセス装置１００からバッファメモリ１２１への一時記憶状態、ｂは不揮発性メモリ１３０への書き込み、ｃは不揮発性メモリ１６０への書き込みを表す。なお、不揮発性メモリ１３０と１６０の書き込み期間に要する時間は２００μＳｅｃとする。
【００６６】
図９（Ａ）、（Ｂ）において、論理アドレスＬＡ０から４ｋＢｙｔｅ分のデータを書き込むまでの書き込み処理時間Ｔ１２とＴ１３を比較すると、書き込み処理時間Ｔ１３がＴ１２よりも長いことがわかる。すなわち、ページサイズより大きなサイズでデータを振り分けるよりも、ページサイズと同じサイズでデータを振り分けた方が速く書き込むことができる。
【００６７】
上述した実施の形態１、２によれば、コア制御部１１２が不揮発性メモリ１３０のＩＤコードに基づいて振り分けサイズを決定し、当該サイズ単位でマスタコントローラ１１０とスレーブコントローラ１４０への振り分けを行うことで、フラッシュメモリの種類、例えば書き込み単位であるページサイズの違いによらず、最適な書き込みパフォーマンスを得ることができる。
（実施の形態３）
【００６８】
図１０は本発明の実施の形態３における不揮発性記憶システムのブロック図である。図１０の構成を図１と比較すると、Ａ２ポート１４７の設定方法だけが異なっている。図１では、基板１０２のＧＮＤレベルを直接入力するようにしたが、図１０ではマスタコントローラと認識した側のメモリコントローラ、すなわちメモリコントローラ１１０がＡ２ポート１１７を介してスレーブ指示信号を設定するようにした。スレーブ指示信号は、少なくとも電源立ち上げ後の初期化期間中、ＧＮＤレベルとなる信号であればよい。
【００６９】
なお、上記本発明の各実施の形態では、メモリモジュールを２つ用いた場合について説明したが、本発明はこれに限定されるものではなく、メモリモジュールを３つ以上用いて構成することも可能である。その場合、メモリコントローラのうち１つがマスタコントローラとして用いられ、他のメモリコントローラはスレーブコントローラとして用いられる。
【産業上の利用可能性】
【００７０】
本発明にかかるメモリコントローラ、不揮発性記憶装置及び不揮発性記憶システムは、フラッシュメモリなどの不揮発性メモリを使用した装置において、低コストでシステムを構成できるものであり、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体として広く利用可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の形態１における不揮発性記憶システムのブロック図
【図２】同実施の形態１におけるメモリコントローラ１１０の初期化処理を示したフローチャート
【図３】同実施の形態１におけるメモリコントローラ１４０の初期化処理を示したフローチャート
【図４】同実施の形態１のシングルモード及びデュアルモードにおける書き込み処理を示した図
【図５】同実施の形態１のシングルモード及びデュアルモードにおける論理アドレスＬＡのフォーマットを示した図
【図６】同実施の形態１における書き込み処理のタイムチャート
【図７】本発明の実施の形態２におけるデュアルモードにおける書き込み処理を示した図
【図８】同実施の形態２のデュアルモードにおける論理アドレスＬＡのフォーマットを示した図
【図９】同実施の形態２における書き込み処理のタイムチャート
【図１０】本発明の実施の形態３における不揮発性記憶システムのブロック図
【符号の説明】
【００７２】
１００  アクセス装置
１０１  不揮発性記憶装置
１０２  基板
１０３、１０４  メモリモジュール
１０５  外部バス
１１０、１４０  メモリコントローラ
１１１、１４１  フロントエンド部
１１２、１４２  コア制御部
１１３、１４３  バックエンド部
１１４、１４４  モード検知部
１１５、１４５  ＭＳ検知部
１１６、１４６  Ａ１ポート
１１７、１４７  Ａ２ポート
１１８、１４８  Ｂポート
１１９、１４９  内部バス
１２０、１５０  ホストインタフェース部
１２１、１５１  バッファメモリ
１２２、１５２  ＣＰＵ
１２３、１５３  ＲＡＭ
１２４、１５４  ＲＯＭ
１２５、１５５  アドレス管理部
１２６、１５６  読み書き制御部
１３０、１６０  不揮発性メモリ
【図１】
0004794949.tif 000005
【図２】
0004794949.tif 000006
【図３】
0004794949.tif 000007
【図４】
0004794949.tif 000008
【図５】
0004794949.tif 000009
【図６】
0004794949.tif 000010
【図７】
0004794949.tif 000011
【図８】
0004794949.tif 000012
【図９】
0004794949.tif 000013
【図１０】
0004794949.tif 000014