説明

メモリカードおよびその初期化設定方法

ホストから出力された初期化コマンドが‘CMD1’、‘CMD55+CMD41’のいずれであるかを初期化コマンド検出部8により検出し、その結果をSD/MMCレジスタ13にセットする。そして、SD/MMCレジスタ13にセットされた検出結果に基づいて、ハードウェア、およびファームウェアのリセット処理をそれぞれ実行する。その後、マイクロコンピュータ7は、ファームウェアのリセット処理がマルチメディアカードモード、またはSDモードのいずれのモードによって実行されたかを示すデータをF/W処理SD/MMCレジスタ14にセットする。H/W−F/Wモード比較回路15は、SD/MMCレジスタ13、およびF/W処理SD/MMCレジスタ14のデータを比較し、一致していればリセットビジーを解除してコマンド待ち状態とし、不一致の際には、不一致発生検出信号をマイクロコンピュータ8に出力し、パワーオンリセット処理を再度行う。

【発明の詳細な説明】
【技術分野】
本発明は、メモリカードの初期化不良動作の回避技術に適用して有効な技術に関するものである。
【背景技術】
パーソナルコンピュータや多機能端末機などの外部記憶メディアの1つとして、標準化団体であるMMCA(MultiMedia Card Association)が標準化したマルチメディアカード(登録商標)やSDA(SD card Association)が標準化したSD(Secure Digital)カード(登録商標)などが広く知られており、デジタルビデオカメラの静止画像記録、携帯電話のデータ記録、携帯音楽プレーヤの音楽記録などに用いられている。
ところが、上記のようなメモリカードでは、次のような問題点があることが本発明者により見い出された。
マルチメディアカードとSDカードとは、利便性をより向上するためにマルチメディアカードの規格、およびSDカードの規格の両方で動作するメモリカードが望まれている。
図11は、マルチメディアカードの規格とSDカードの規格との相違点の説明図である。図示するように、初期化コマンド、CSD値、コマンドサポート、OCR(Operation Condition Register)値、およびその他のレジスタなどを設定する規格が異なっている。
図12は、本発明者が検討したマルチメディアカードの規格による動作を行うマルチメディアカードモードとSDカードの規格による動作を行うSDモードとの両モードで動作するメモリカードの内部ブロック図である。
この場合、図示するように、メモリカード50は、フラッシュメモリ51、およびコントローラ52から構成される。コントローラ52は、内部インタフェースロジック53、ホストインタフェース54、データバッファ55、ならびにマイクロコンピュータ56からなる。
フラッシュメモリ51のシステム領域には、SD−CSD(Card Specific Data)、SCR(Secure Register)、MMC−CSD、EX(EXtend)−CSDなどのデータが格納されている。
内部インタフェースロジック53は、フラッシュメモリ51、データバッファ55、ならびにマイクロコンピュータ56におけるインタフェースからなる。
ホストインタフェース54は、ホストから入出力される書き込み/読み出し/消去といった動作を指示するコマンドを受け、これらの動作に必要なデータの入出力を行う。
データバッファ55は、ホスト、およびフラッシュメモリ51から入出力されるデータを一時的に格納するとともに、コントローラ52がフラッシュメモリ51から読み出したSD−CSD、SCR、またはMMC−CSD、EX(EXtend)−CSDの一方を格納する。マイクロコンピュータ55は、コントローラ52のすべての制御を司る。
また、ホストインタフェース54は、初期コマンド検出部57、MMCコマンドデコード58、SDコマンドデコード59、MMC−OCR60、SD−OCR61、SD/MMCレジスタ62、およびスイッチ部63,64から構成されている。
初期コマンド検出部57は、入力された初期コマンドがSD規格のコマンドかMMC規格のコマンドかを検出する。SD/MMCレジスタ62は、初期コマンド検出部57によって検出された検出信号を格納する。
マイクロコンピュータ56は、SD/MMCレジスタ62に格納されている検出結果を参照し、マルチメディアカードモード/SDモードのいずれで動作すればよいかを認識する。
スイッチ部63,64は、SD/MMCレジスタ62に格納されている検出結果に基づいて信号の出力先を切り替える。MMCコマンドデコード58は、メモリカード50がマルチメディアカードモードの動作の際に、MMC規格のコマンドをデコードする。SDコマンドデコード59は、メモリカード50がSDモードで動作の際に、SD規格のコマンドをデコードする。
MMC−OCR60は、マルチメディアカードモードにおける動作可能な電圧範囲を定義し、SD−OCR61、SDモードにおける動作可能な電圧範囲を定義する。
スイッチ部63は、SD/MMCレジスタ62に格納された検出結果が、マルチメディアカードモードの際には、入力されるコマンドがMMCコマンドデコード58に入力されるように接続先を切り替え、該検出結果が、SDモードの際には、入力されるコマンドがSDコマンドデコード59に入力されるように接続先を切り替える。
また、スイッチ部64は、SD/MMCレジスタ62に格納された検出結果が、マルチメディアカードモードの際には、MMC−OCR60のデータが出力されるように接続先を切り替え、該検出結果が、SDモードの際には、SD−OCR61のデータが出力されるように接続先を切り替える。
ここで、本発明者が検討したメモリカード50のパワーオンリセット処理の動作について、図13のタイミングチャート、および図14のフローチャートを用いて説明する。ここでは、初期コマンドとして、SDモードの’CMD55+CMD41’がメモリカード50に入力されるものとする。
図13においては、上方から下方にかけて、ホストから出力されるコマンド、SD/MMCレジスタ62、マイクロコンピュータ56のファームウェア処理、初期化コマンド検出部57、MMC−OCR60/SD−OCR61、MMCコマンドデコード58/SDコマンドデコード59のそれぞれの信号タイミングについて示している。
さらに、図14においては、左側に示す点線内のフローチャートがハードウェアの初期化処理であり、右側に示す点線内のフローチャートがファームウェアの初期化処理をそれぞれ示している。
まず、メモリカード50に電源電圧VCCが供給されると、ホストから、該メモリカード50の動作可能な電圧範囲のチェック、および該メモリカード50の内部処理を終了したかをチェックする初期化コマンド’CMD55+CMD41’が出力される(ステップS501)。
初期化コマンド検出部57は、初期化コマンドを検出し、その検出結果をSD/MMCレジスタ62に出力してセットする(ステップS502)。
スイッチ部63,64は、SD/MMCレジスタ62にセットされたデータに基づいて、スイッチ部63は、ホストから出力されるコマンドがSDコマンドデコード59に入力されるように接続先を切り替え、スイッチ部64は、SD−OCR61のデータが出力されるように接続先を切り替える(ステップS503)。その後、メモリカード50はコマンドの待ち受け状態となる。
さらに、ステップS503の処理と並行して、マイクロコンピュータ56は、SD/MMCレジスタ62にセットされた検出結果に基づいて、フラッシュメモリ51にアクセスし、システム領域に格納されているSD−CSDを読み出し(ステップS504)、データバッファ55に格納する。続いて、マイクロコンピュータ56は、SCRをフラッシュメモリ51から読み出し(ステップS505)、データバッファ55に格納する。
その後、マイクロコンピュータ56は、代替領域を管理するフラッシュテーブルなどを検索し(ステップS506)、リセットビジーを解除して(ステップS507)コマンド待ち状態となる。
このパワーオンリセット処理中において、たとえば、図14左側に示す点線内に示すハードウェアの初期化処理が終了した後に、ホストからマルチメディアカードモードの初期化コマンドである’CMD1’が入力されると、ハードウェアはリセットビジーを解除した際、再びマルチメディアカードモードによる初期化動作を開始してしまうが、図14右側に示す点線内に示すファームウェアの初期化処理は行われず、ハードウェアとファームウェアとのモード認識のずれが生じてしまうことになる。
本発明の目的は、ある動作モードの初期化中に異なる動作モードの初期化コマンドが入力されても、初期化動作不良を確実に防止することのできるメモリカードメモリカードおよびその初期化設定方法を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【発明の開示】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
(1)本発明は、複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
コントローラは、外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出し、初期化設定コマンドによる初期化設定の終了後、検出した初期化設定コマンドの動作モードとファームウェアリセット処理を実行した動作モードとが一致しない際に不一致検出信号を出力するホストインタフェース部を備え、初期化設定の実行後に比較回路の不一致発生検出信号を受け取ると、初期化コマンド格納部に格納された検出結果に基づいて、再び初期化処理を行うものである。
また、本願のその他の発明の概要を簡単に示す。
(2)本発明は、複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、コントローラは、外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出した際にマスク信号を出力し、第1、または第2の動作モードのいずれかの初期化設定を実行している期間は、新たな初期化設定コマンドを受け付けないホストインタフェース部を備えたものである。
(3)本発明は、複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、コントローラは、外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出し、検出した検出結果を順次格納し、初期化設定終了信号を受け取る毎に、格納した検出結果を順次出力するホストインタフェース部を備え、検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、初期化設定の終了後、新たな検出結果が格納されている際には、結果に基づいてファームウェアリセット処理を行うものである。
さらに、本願のその他の発明の概要を項に分けて簡単に示す。
(1)以下のステップを含むメモリカードの初期化設定方法:
(a)外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップ、
(b)初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に格納するステップ、
(c)コントローラが、初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行するステップ、
(d)第1、または第2の動作モードによる初期化設定において、ファームウェアリセット処理がいずれの動作モードで実行されたかを示すデータをファームウェアリセット処理格納部に格納するステップ、
(e)初期化コマンド格納部に格納された検出結果とファームウェアリセット処理格納部に格納されたデータとを比較回路により比較し、一致しない際には不一致発生検出信号を出力するステップと、
(f) コントローラは、不一致発生検出信号を受け取ると、初期化コマンド格納部に格納された検出結果に基づいて、再び初期化処理を行うステップ。
(2)
(a)外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップ、
(b)初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に格納するステップ、
(c)初期化コマンド検出部が第1、または第2の動作モードの初期化設定コマンドを検出した際に、モード設定マスク部が初期化コマンド格納部にマスク信号を出力し、初期化コマンド格納部に新たに入力される検出結果をマスクするステップ、
(d)コントローラが、初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行するステップ。
(3)
(a)外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップ、
(b)初期化コマンド検出部が検出した最初の検出結果を初期化コマンド格納部に格納するステップ、
(c)初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に順次格納するステップ、
(d)初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、初期化設定の終了後、リセット終了設定部から初期化設定終了信号を出力するステップ、
(e)初期化設定の終了後、初期化設定終了信号を受け取る毎に初期化コマンド格納部から順次出力される結果に基づいてファームウェアリセット処理を行うステップ。
【図面の簡単な説明】
図1は、本発明の実施の形態1によるメモリカードのブロック図、図2は、図1のメモリカードにおけるコネクタピンの説明図、図3は、図1のメモリカードに設けられたホストインタフェースのブロック図、図4は、図1のメモリカードによるパワーオンリセット処理のフローチャート、図5は、本発明の実施の形態2によるメモリカードのブロック図、図6は、図5のメモリカードにおけるパワーオンリセット処理時の信号タイミングチャート、図7は、図5のメモリカードにおけるパワーオンリセット処理時のフローチャート、図8は、本発明の実施の形態3によるメモリカードのブロック図、図9は、図8のメモリカードにおけるパワーオンリセット処理時の信号タイミングチャート、図10は、図8のメモリカードにおけるパワーオンリセット処理時のフローチャート、図11は、SDカード、およびマルチメディアカードの両規格におけるコマンドの相違点を示した説明図、図12は、本発明者が検討したメモリカードのブロック図、図13は、図12のメモリカードにおけるパワーオンリセット処理時の信号タイミングチャート、図14は、図12のメモリカードにおけるパワーオンリセット処理時のフローチャートである。
【発明を実施するための最良の形態】
本発明を詳細に説明するために、添付の図面に従ってこれを説明する。なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
(実施の形態1)
本実施の形態1において、メモリカード1は、たとえば、デジタルビデオカメラ、携帯電話、携帯音楽プレーヤやパーソナルコンピュータなどにおけるホストの外部記憶メディアとして用いられ、SDカードの規格、およびマルチメディアカードの規格の両方の規格で動作するメモリカードである。
メモリカード1は、図1に示すように、フラッシュメモリ(不揮発性半導体メモリ)2、およびコントローラ3から構成される。このコントローラ3は、内部インタフェースロジック4、ホストインタフェース(ホストインタフェース部)5、データバッファ6、ならびにマイクロコンピュータ7から構成されている。
フラッシュメモリ2は、電気的にデータの書き換え、消去が可能な不揮発性半導体メモリである。このフラッシュメモリ2のシステム領域には、SD−CSD、SCR、MMC−CSD、EX−CSDなどのデータが格納されている。
SD−CSDは、SDカードにおけるカード特性レジスタであり、SDカードの規格で動作するSDモード(第1の動作モード)のメモリカード1に関する諸情報が格納されている。SCRは、SDモード時におけるメモリカード1のセキュアモードにおけるセキュリティ情報やカードのステータスが格納されたレジスタである。
MMC−CSDは、マルチメディアカードにおけるカード特性レジスタであり、該マルチメディアカードの規格で動作するマルチメディアカードモード(第2の動作モード)のメモリカード1に関する諸情報が格納されている。
EX−CSDは、マルチメディアカードモード時におけるメモリカード1のセキュアモードにおけるセキュリティ情報が格納されたレジスタである。
内部インタフェースロジック4は、フラッシュメモリ2、データバッファ6、ならびにマイクロコンピュータ7におけるインタフェースである。ホストインタフェース5は、ホストから入出力される書き込み/読み出し/消去といった動作を指示するコマンドを受け、これらの動作に必要なデータの入出力を行う。
データバッファ6は、ホスト、およびフラッシュメモリ2から入出力されるデータを一時的に格納するとともに、コントローラ3がフラッシュメモリ2から読み出したSD−CSD、SCR、またはMMC−CSD、EX−CSDの一方を格納する。マイクロコンピュータ7は、コントローラ3のすべての制御を司る。
また、メモリカード1の下方には、図示するように、右側から左側にかけて、ホストとの接続用のコネクタピンP1〜P7が設けられている。メモリカード1の下側のコーナ部に設けられた切り欠きに最も近いコネクタピンP1が1ピンであり、該切り欠きから最も離れたコネクタピンP7が7ピンとなる。
これらコネクタピンP1〜P7におけるピン構成を図2に示す。コネクタピンP1は、NC(No Connect)であり、コネクタピンP3,P6は基準電位となるグランドが接続される。
コネクタピンP2には、コマンドが入出力され、コネクタピンP5には外部からのクロック信号が入力される。コネクタピンP7には、データが入出力される。
本実施の形態では、メモリカード1がマルチメディアカードにおけるコネクタピン配置を採用した場合について記載したが、該メモリカード1は、SDカードにおけるコネクタピン配置であってもよい。
この場合、コネクタピン数は9ピンとなり、コネクタピンP1,P7との左右にそれぞれ新しいコネクタピンが配置されることになる。また、新たなコネクタピンはコネクタピンP7と同様にデータが入出力されるI/Oピンとなる。
また、ホストインタフェース5の内部構成について、図3を用いて説明する。
ホストインタフェース5は、初期コマンド検出部8、MMCコマンドデコード(第2のコマンドデコード部)9、SDコマンドデコード(第1のコマンドデコード部)10、MMC−OCR(第2のOCR)11、SD−OCR(第1のOCR)12、SD/MMCレジスタ(初期化コマンド格納部)13、F/W処理SD/MMCレジスタ(ファームウェアリセット処理格納部)14、H/W−F/Wモード比較回路(比較部)15、およびスイッチ部16,17から構成されている。
初期コマンド検出部8は、コネクタピンP2を介して入力された初期コマンドがSD規格のコマンドかMMC規格のコマンドかを検出する。初期コマンド検出部8には、SD/MMCレジスタ13が接続されている。
SD/MMCレジスタ13は、初期コマンド検出部8によって検出された検出信号を格納する。SD/MMCレジスタ13には、マイクロコンピュータ7、ならびにスイッチ部16,17がそれぞれ接続されている。
マイクロコンピュータ7は、SD/MMCレジスタ13に格納されている検出結果を参照することによって、マルチメディアカードモード/SDモードのいずれで動作すればよいかを認識する。
スイッチ部16,17は、SD/MMCレジスタ13に格納されている検出結果に基づいて信号の出力先を切り替える。スイッチ部(第1の切り替え部)16の入力部には、コネクタピンP2が接続されている。
このスイッチ部16の一方の出力部には、MMCコマンドデコード9が接続されており、他方の出力部にはSDコマンドデコード10が接続されている。
MMCコマンドデコード9は、メモリカード1がマルチメディアカードモードの動作の際に、MMC規格のコマンドをデコードする。SDコマンドデコード10は、メモリカード1がSDモードで動作の際に、SD規格のコマンドをデコードする。
さらに、スイッチ部(第2の切り替え部)17の一方の入力部には、MMC−OCR11が接続されており、他方の入力部には、SD−OCR12が接続されている。そして、このスイッチ部17の出力部には、コネクタピンP7が接続されている。MMC−OCR11は、マルチメディアカードモードにおける動作可能な電圧範囲を定義し、SD−OCR12は、SDモードにおける動作可能な電圧範囲を定義する。
よって、スイッチ部16は、SD/MMCレジスタ13に格納された検出結果が、マルチメディアカードモードの際には、コネクタピンP2を介して入力されるコマンドがMMCコマンドデコード9に入力されるように接続先を切り替え、該検出結果が、SDモードの際には、コネクタピンP2を介して入力されるコマンドがSDコマンドデコード10に入力されるように接続先を切り替える。
また、スイッチ部17は、SD/MMCレジスタ13に格納された検出結果が、マルチメディアカードモードの際には、コネクタピンP7を介してMMC−OCR11のデータが出力されるように接続先を切り替え、該検出結果が、SDモードの際には、コネクタピンP7を介してSD−OCR12のデータが出力されるように接続先を切り替える。
F/W処理SD/MMCレジスタ14は、マイクロコンピュータ7に接続されており、該マイクロコンピュータ7から出力されたファームウェアのリセット処理がマルチメディアカードモード、あるいはSDモードのいずれで行われたかを示す結果を格納する。
H/W−F/Wモード比較回路15は、SD/MMCレジスタ13、ならびにF/W処理SD/MMCレジスタ14に格納されたデータが入力されるように接続されており、それらのデータを比較し、一致するか否かの判定する。
SD/MMCレジスタ13とF/W処理SD/MMCレジスタ1とのデータが一致しない場合、H/W−F/Wモード比較回路15は、不一致発生検出信号をマイクロコンピュータ7に出力する。
次に、本実施の形態1のメモリカード1におけるパワーオンリセット処理について、図4のフローチャートを用いて説明する。この図4においては、左側に示す点線内のフローチャートがハードウェアの初期化処理であり、右側に示す点線内のフローチャートがファームウェアの初期化処理をそれぞれ示している。
まず、メモリカード1がホストに設けられたメモリスロットなどに挿入されると、該メモリスロットのコネクタピンを介してメモリカード1に電源電圧VCCが供給される。
ホストから、メモリカード1の動作可能な電圧範囲のチェック、および該メモリカード1の内部処理を終了したかをチェックする初期化コマンドが出力される(ステップS101)。
そして、初期化コマンド検出部8は、入力された初期化コマンドが、マルチメディアカードモードの’CMD1’、またはSDモードの’CMD55+CMD41’のいずれであるかを検出し、その検出結果をSD/MMCレジスタ13に出力して該SD/MMCレジスタ13にセットする(ステップS102)。
スイッチ部16,17は、SD/MMCレジスタ13にセットされたデータに基づいて、接続先を切り替え(ステップS103)、その後、メモリカード1はコマンドの待ち受け状態となる。
SD/MMCレジスタ13にセットされたデータがマルチメディアカードモードの場合、スイッチ部16は、ホストから出力されるコマンドがMMCコマンドデコード9に入力されるように接続先を切り替え、スイッチ部17は、MMC−OCR11のデータが出力されるように接続先を切り替える。
また、SD/MMCレジスタ13にセットされたデータがSDモードの場合、ホストから出力されるコマンドがSDコマンドデコード10に入力されるように接続先を切り替え、スイッチ部17は、SD−OCR12のデータが出力されるように接続先を切り替える。
さらに、ステップS103の処理と並行して、マイクロコンピュータ7は、SD/MMCレジスタ13にセットされた検出結果に基づいて、フラッシュメモリ2にアクセスし、システム領域に格納されているSD−CSD、またはMMC−CSDのいずれかを読み出し(ステップS104)、データバッファ6に格納する。
続いて、マイクロコンピュータ7は、SCR、またはEX−CSDのいずれかをフラッシュメモリ2から読み出し(ステップS105)、データバッファ6に格納する。
これらステップS104,S105の処理において、SD/MMCレジスタ13にセットされたデータがマルチメディアカードモードの際、マイクロコンピュータ7は、MMC−CSD、およびEX−CSDをそれぞれ読み出し、SD/MMCレジスタ13にセットされたデータがSDモードの場合、マイクロコンピュータ7は、SD−CSD、およびSCRをそれぞれ読み出す。
その後、マイクロコンピュータ7は、代替領域を管理するフラッシュテーブルなどを検索し(ステップS106)、ファームウェアのリセット処理がマルチメディアカードモード、またはSDモードのいずれのモードによって実行されたかを示すデータをF/W処理SD/MMCレジスタ14にセットする(ステップS107)。
そして、H/W−F/Wモード比較回路15は、SD/MMCレジスタ13、およびF/W処理SD/MMCレジスタ14にセットされているデータを比較し(ステップS108)、一致していれば、リセットビジーを解除してコマンド待ち状態となる。
また、ステップS108の処理において、SD/MMCレジスタ13のデータとF/W処理SD/MMCレジスタ14のデータとが不一致の際には、不一致発生検出信号をマイクロコンピュータ8に出力し、再度ステップS101〜S108の処理(パワーオンリセット処理)を行う。
このパワーオンリセット処理は、SD/MMCレジスタ13のデータとF/W処理SD/MMCレジスタ14のデータとが一致するまで繰り返し行われる。
よって、メモリカード1が一方の動作モードにおいて初期化動作中に続けて他方の動作モードの初期化コマンドが入力されても、後からハードウェアとファームウェアの初期化処理が一致するまでパワーオンリセット処理を繰り返し行うことになる。
それにより、本実施の形態1によれば、SDモードとマルチメディアカードモードとの両方で動作するメモリカード1における初期化動作不良を確実に防止することができ、該メモリカード1の信頼性を大幅に向上することができる。
(実施の形態2)
本実施の形態2において、メモリカード1aは、図5に示すように、前記実施の形態1と同様に、フラッシュメモリ2、およびコントローラ3から構成されている。コントローラ3は、内部インタフェースロジック4、ホストインタフェース(ホストインタフェース部)5a、データバッファ6、ならびにマイクロコンピュータ7から構成されている。
また、ホストインタフェース5aは、初期コマンド検出部8、MMCコマンドデコード9、SDコマンドデコード10、MMC−OCR11、SD−OCR12、SD/MMCレジスタ13からなる前記実施の形態1と同様の構成に、モード設定マスクレジスタ(モード設定マスク部)18が新たに設けられている。
モード設定マスクレジスタ18には、初期コマンド検出部8、およびSD/MMCレジスタ13がそれぞれ接続されている。このモード設定マスクレジスタ18は、初期コマンド検出部8が検出した検出結果に基づいて、SD/MMCレジスタ13にマスク信号を出力する。
次に、本実施の形態2のメモリカード1aにおけるパワーオンリセット処理について、図6のタイミングチャート、および図7のフローチャートを用いて説明する。ここでは、初期コマンドとして、SDモードの’CMD55+CMD41’がメモリカード1aに入力されるものとするが、初期コマンドとして、マルチメディアカードモードの’CMD1’がメモリカード1aに入力されても同様の動作が行われることになる。
図6においては、上方から下方にかけて、ホストから出力されるコマンド、SD/MMCレジスタ13、マイクロコンピュータ7によるファームウェア処理、初期化コマンド検出部8、モード設定マスクレジスタ18のモード切り替えマスク、MMC−OCR11/SD−OCR12、MMCコマンドデコード9/SDコマンドデコード10のそれぞれの信号タイミングについて示している。
また、図7においては、左側に示す点線内のフローチャートがハードウェアの初期化処理であり、右側に示す点線内のフローチャートがファームウェアの初期化処理をそれぞれ示している。
まず、メモリカード1aがホストに設けられたメモリスロットなどに挿入されてメモリカード1aに電源電圧VCCが供給されると、該ホストから、メモリカード1aの動作可能な電圧範囲のチェック、および該メモリカード1の内部処理を終了したかをチェックする初期化コマンド’CMD55+CMD41’が出力される(ステップS201)。
そして、初期化コマンド検出部8が、SDモードの初期化コマンド’CMD55+CMD41’を検出すると、その検出結果をSD/MMCレジスタ13に出力して該SD/MMCレジスタ13にセット(Hiレベル)するとともに(ステップS202)、モード設定マスクレジスタ18に出力する。
モード設定マスクレジスタ18は、初期化コマンド検出部8の検出結果を受けてHiレベルのマスク信号をSD/MMCレジスタ13に出力する。このマスク信号が出力されている期間に入力される初期化コマンド’CMD1’は、ポーリングコマンドとして処理される。
SD/MMCレジスタ13は、モード設定マスクレジスタ18のマスク信号がHiレベルの期間、リセット処理中にマルチメディアカードモードの初期コマンド’CMD1’が入力されても、SDモードからマルチメディアカードモードへの切り替えがマスクされる。
スイッチ部16,17は、SD/MMCレジスタ13にセットされたデータに基づいて、接続先を切り替え(ステップS203)、SDコマンドデコード10、およびSD−OCR12をそれぞれ選択する。その後、メモリカード1はコマンドの待ち受け状態となる。
さらに、ステップS203の処理と並行して、マイクロコンピュータ7は、SD/MMCレジスタ13にセットされた検出結果に基づいて、フラッシュメモリ2にアクセスし、システム領域に格納されているSD−CSDを読み出し(ステップS204)、データバッファ6に格納する。
続いて、マイクロコンピュータ7は、フラッシュメモリ2からSCRを読み出し(ステップS205)、データバッファ6に格納する。
その後、マイクロコンピュータ7は、代替領域を管理するフラッシュテーブルなどを検索し(ステップS206)、リセットビジーを解除するとともにマスク解除信号をモード設定マスクレジスタ18に出力する(ステップS207)。モード設定マスクレジスタ18は、マスク解除信号を受けて、マスク信号を解除する。
このステップS206の処理において、リセットビジーが解除されると、モード設定マスクレジスタ18から出力されるマスク信号がLoレベルとなり、マスクが解除されてコマンド待ち状態となる。
それにより、本実施の形態2では、マスク信号が出力されている間、モード切り替えがマスクされるので、メモリカード1aにおける初期化動作不良を確実に防止することができ、該メモリカード1aの信頼性を大幅に向上することができる。
(実施の形態3)
本実施の形態3において、メモリカード1bは、図8に示すように、前記実施の形態1と同様に、フラッシュメモリ2、およびコントローラ3から構成されている。コントローラ3は、内部インタフェースロジック4、ホストインタフェース(ホストインタフェース部)5b、データバッファ6、ならびにマイクロコンピュータ7から構成されている。
また、ホストインタフェース5bは、初期コマンド検出部8、MMCコマンドデコード9、SDコマンドデコード10、MMC−OCR11、SD−OCR12、SD/MMCレジスタ13からなる前記実施の形態1,2と同様の構成に、初期化コマンドバッファ(初期化コマンド格納部)19、およびリセット終了レジスタ(リセット終了設定部)20が新たに設けられている。
初期化コマンドバッファ19には、マイクロコンピュータ7、初期コマンド検出部8、およびSD/MMCレジスタ13がそれぞれ接続されている。この初期化コマンドバッファ19は、初期コマンド検出部8が検出した初期化コマンドをバッファリングする。
リセット終了レジスタ20は、マイクロコンピュータ7に接続されており、パワーオンリセット処理が終了した際に該マイクロコンピュータ7によってメモリカード1bのリセット処理の終了を示す信号がセットされる。
次に、本実施の形態3のメモリカード1bにおけるパワーオンリセット処理について、図9のタイミングチャート、ならびに図10のフローチャートを用いて説明する。
ここでは、初期コマンドとして、SDモードの’CMD55+CMD41’がメモリカード1b入力され、その初期化中にマルチメディアカードモードの初期化コマンド’CMD1’が入力された場合ついて説明するが、マルチメディアカードモードの初期化コマンド’CMD1’が入力され、その初期化中にSDモードの’CMD55+CMD41’がメモリカード1b入力される場合も同様の動作を行う。
図9においては、上方から下方にかけて、ホストから出力されるコマンド、SD/MMCレジスタ13、マイクロコンピュータ7のファームウェア処理、初期化コマンド検出部8、初期化コマンドバッファ19、MMC−OCR11/SD−OCR12、MMCコマンドデコード9/SDコマンドデコード10のそれぞれの信号タイミングについて示している。
また、図10においては、左側に示す点線内のフローチャートがハードウェアの初期化処理であり、右側に示す点線内のフローチャートがファームウェアの初期化処理をそれぞれ示している。
まず、メモリカード1bがホストに設けられたメモリスロットなどに挿入されてメモリカード1b電源電圧VCCが供給されると、該ホストから、メモリカード1bの動作可能な電圧範囲のチェック、および該メモリカード1の内部処理を終了したかをチェックする初期化コマンド’CMD55+CMD41’が出力される(ステップS301)。
そして、初期化コマンド検出部8が、SDモードの初期化コマンド’CMD55+CMD41’を検出すると、その検出結果をSD/MMCレジスタ13に出力して該SD/MMCレジスタ13にセット(Hiレベル)する(ステップS302)。
スイッチ部16,17は、SD/MMCレジスタ13にセットされたデータに基づいて、接続先を切り替え(ステップS303)、SDコマンドデコード10、およびSD−OCR12をそれぞれ選択する。その後、メモリカード1はコマンドの待ち受け状態となる。
さらに、ステップS303の処理と並行して、マイクロコンピュータ7は、SD/MMCレジスタ13にセットされた検出結果に基づいて、フラッシュメモリ2にアクセスし、システム領域に格納されているSD−CSDを読み出し(ステップS304)、データバッファ6に格納する。
続いて、マイクロコンピュータ7は、フラッシュメモリ2からSCRを読み出し(ステップS305)、データバッファ6に格納する。その後、マイクロコンピュータ7は、代替領域を管理するフラッシュテーブルなどを検索し(ステップS306)、リセットビジーを解除するとともに(ステップS307)、マイクロコンピュータ7により、パワーオンリセット処理が終了したことを示す信号がリセット終了レジスタ20にセットされる。
このステップS208の処理におけるリセットビジー解除前に、たとえば、マルチメディアカードモードの初期化コマンド’CMD1’がホストから入力されると(ステップS308)、初期化コマンド検出部8は、該’CMD1’が入力されたことを検出し、その検出結果を出力する。
初期化コマンドバッファ19は、該初期化コマンド検出部8の検出結果をバッファリングする(ステップS309)。そして、リセットビジーを解除後、リセット終了レジスタ20に信号がセットされていると、初期化コマンドバッファ19は、マイクロコンピュータ7に’CMD1’が入力されたことを示す信号(Hiレベル)を出力し、ステップS304〜S306の処理を実行し、マルチメディアカードモードによるファームウェアの初期化を実行する。
それにより、本実施の形態3においては、一方のモードによるメモリカード1bの初期化中に、他のモードの初期化コマンドが入力されても、該メモリカード1bに入力されたすべてのモードの初期化を順次実行するのでメモリカード1bの初期化動作不良を確実に防止することができ、該メモリカード1bの信頼性を大幅に向上することができる。
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
以上のように、本発明にかかるメモリカードおよびその初期化設定方法は、SDカードの規格とマルチメディアカードの規格との両規格で動作するメモリカードにおける誤動作回避化技術に適している。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】


【特許請求の範囲】
【請求項1】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
前記コントローラは、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出し、前記初期化設定コマンドによる初期化設定の終了後、前記検出した初期化設定コマンドの動作モードとファームウェアリセット処理を実行した動作モードとが一致しない際に不一致検出信号を出力するホストインタフェース部を備え、
前記コントローラは、
初期化設定の実行後に前記比較回路の不一致発生検出信号を受け取ると、初期化コマンド格納部に格納された検出結果に基づいて、再び初期化処理を行うことを特徴とするメモリカード。
【請求項2】
請求項1記載のメモリカードにおいて、
前記ホストインタフェース部は、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出する初期化コマンド検出部と、
前記初期化コマンド検出部が検出した検出結果を格納する初期化コマンド格納部と、
ファームウェアリセット処理が、第1の動作モード、あるいは第2の動作モードのいずれで実行されたかを示すデータを格納するファームウェアリセット処理格納部と、
前記初期化コマンド格納部に格納された検出結果とファームウェアリセット処理格納部に格納されたデータとを比較し、一致しない際には不一致発生検出信号を出力する比較回路とを備え、
前記コントローラは、
初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、
初期化設定の実行後に前記比較回路の不一致発生検出信号を受け取ると、初期化コマンド格納部に格納された検出結果に基づいて、再び初期化処理を行うことを特徴とするメモリカード。
【請求項3】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
前記コントローラは、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出した際にマスク信号を出力し、第1、または第2の動作モードのいずれかの初期化設定を実行している期間は、新たな初期化設定コマンドを受け付けないホストインタフェース部を備えたことを特徴とするメモリカード。
【請求項4】
請求項3記載のメモリカードにおいて、
前記ホストインタフェース部は、
前記初期化コマンド検出部が検出した検出結果を格納する初期化コマンド格納部と、
前記初期化コマンド検出部が第1、または第2の動作モードの初期化設定コマンドを検出した際に、前記初期化コマンド格納部にマスク信号を出力し、前記初期化コマンド格納部の動作をマスクするモード設定マスク部とを備え、
前記コントローラは、
初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、前記初期設定が終了後、前記モード設定マスク部にマスク解除信号を出力し、前記モード設定マスク部のマスク信号を解除することを特徴とするメモリカード。
【請求項5】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
前記コントローラは、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出し、前記検出した検出結果を順次格納し、初期化設定終了信号を受け取る毎に、格納した検出結果を順次出力するホストインタフェース部を備え、
前記コントローラは、
前記検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、前記初期化設定の終了後、新たな検出結果が格納されている際には、前記結果に基づいてファームウェアリセット処理を行うことを特徴とするメモリカード。
【請求項6】
請求項5記載のメモリカードにおいて、
前記ホストインタフェース部は、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを検出する初期化コマンド検出部と、
前記初期化コマンド検出部が検出した検出結果を格納する初期化コマンド格納部と、
前記初期化コマンド検出部が検出した検出結果を順次格納し、初期化設定終了信号を受け取る毎に、格納した検出結果を順次出力する初期化コマンド格納部と、
初期化設定が終了した際に初期化設定終了信号を出力するリセット終了設定部とを備え、
前記コントローラは、
初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、前記初期化設定の終了後、前記初期化設定終了信号を受け取る毎に前記初期化コマンド格納部から順次出力される結果に基づいてファームウェアリセット処理を行うことを特徴とするメモリカード。
【請求項7】
請求項1〜6のいずれか1項に記載のメモリカードにおいて、
前記コンローラは、
前記第1の動作モードのコマンドをデコードする第1のコマンドデコード部と、
前記第2の動作モードのコマンドをデコードする第2のコマンドデコード部と、
前記初期化コマンド格納部に格納された検出結果に基づいて、前記第1、または第2のコマンドデコード部の接続先を切り替える第1の切り替え部と、
前記第1の動作モードにおける動作可能な電圧範囲を定義する第1のOCRと、
前記第2の動作モードにおける動作可能な電圧範囲を定義する第2のOCRと、
前記初期化コマンド格納部に格納された検出結果に基づいて、前記第1、または第2のOCRの接続先を切り替える第2の切り替え部とを備えたことを特徴とするメモリカード。
【請求項8】
外部よりコマンドと動作電圧とが供給され、前記コマンドに応じて、制御手段が不揮発性半導体メモリにアクセスし、情報の格納、または情報の読み出しを行うメモリカードの初期化設定方法であって、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップと、
前記初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に格納するステップと、
コントローラが、初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行するステップと、
前記第1、または第2の動作モードによる初期化設定において、ファームウェアリセット処理がいずれの動作モードで実行されたかを示すデータをファームウェアリセット処理格納部に格納するステップと、
前記初期化コマンド格納部に格納された検出結果とファームウェアリセット処理格納部に格納されたデータとを比較回路により比較し、一致しない際には不一致発生検出信号を出力するステップと、
前記コントローラは、前記不一致発生検出信号を受け取ると、初期化コマンド格納部に格納された検出結果に基づいて、再び初期化処理を行うステップとを有することを特徴とするメモリカードの初期化設定方法。
【請求項9】
外部よりコマンドと動作電圧とが供給され、前記コマンドに応じて、制御手段が不揮発性半導体メモリにアクセスし、情報の格納、または情報の読み出しを行うメモリカードの初期化設定方法であって、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップと、
前記初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に格納するステップと、
前記初期化コマンド検出部が第1、または第2の動作モードの初期化設定コマンドを検出した際に、モード設定マスク部が前記初期化コマンド格納部にマスク信号を出力し、前記初期化コマンド格納部に新たに入力される検出結果をマスクするステップと、
前記コントローラが、初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行するステップとを有することを特徴とするメモリカードの初期化設定方法。
【請求項10】
外部よりコマンドと動作電圧とが供給され、前記コマンドに応じて、制御手段が不揮発性半導体メモリにアクセスし、情報の格納、または情報の読み出しを行うメモリカードの初期化設定方法であって、
外部から発行される第1、または第2の動作モードの初期化設定コマンドを初期化コマンド検出部が検出するステップと、
前記初期化コマンド検出部が検出した最初の検出結果を初期化コマンド格納部に格納するステップと、
前記初期化コマンド検出部が検出した検出結果を初期化コマンド格納部に順次格納するステップと、
前記初期化コマンド格納部に格納された検出結果に基づいて、第1、または第2の動作モードのいずれかの初期化設定を実行し、前記初期化設定の終了後、リセット終了設定部から初期化設定終了信号を出力するステップと、
前記初期化設定の終了後、前記初期化設定終了信号を受け取る毎に前記初期化コマンド格納部から順次出力される結果に基づいてファームウェアリセット処理を行うステップとを有することを特徴とするメモリカードの初期化設定方法。

【国際公開番号】WO2004/084127
【国際公開日】平成16年9月30日(2004.9.30)
【発行日】平成18年6月22日(2006.6.22)
【国際特許分類】
【出願番号】特願2004−569590(P2004−569590)
【国際出願番号】PCT/JP2003/003414
【国際出願日】平成15年3月20日(2003.3.20)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】