(57)【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
前記コントローラは、
外部から発行されるコマンドをデコードするコマンドデコード部と、
第１グループのコマンド処理を格納した不揮発性記憶部と、
揮発性記憶部と、
前記外部から発行される各々のコマンドが、有効か無効かを設定したコマンド設定部と、
前記コマンドデコード部のデコード結果に応じてレスポンスを生成し、前記外部へ前記レスポンスの出力制御を行うレスポンス制御部とを備え、
前記不揮発性半導体メモリは、通常データを格納可能な第１領域と第２グループのコマンド処理を格納可能な第２領域とを有し、
前記不揮発性半導体メモリの第２領域に前記第２グループのコマンドが格納されている場合、前記第２グループのコマンド処理を前記揮発性記憶部に転送し、
前記コマンド設定部は、前記不揮発性記憶部に格納されている前記第１グループのコマンドについて有効か無効かを設定された後、前記不揮発性半導体メモリの第２領域に前記第２グループのコマンド処理が格納されている場合、前記第２グループのコマンドについて有効か無効かを設定することを特徴とするメモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、前記コントローラは、第１制御部と第２制御部とをさらに有し、
前記第１制御部は、前記デコード結果に応じて前記第２制御部に所定の信号を出力し、
前記第２制御部は、前記所定の信号に応じて処理を行うことを特徴とするメモリカード。
【請求項３】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとからなるメモリカードであって、
前記コントローラは、
第１グループのコマンドの処理を格納した不揮発性記憶部と、
揮発性記憶部と、
外部から発行されるコマンドをデコードし、前記コマンドのインデックスを判断し、所定の出力先にデコード信号を出力するコマンドデコード部と、
前記各々のコマンドのインデックス毎に有効、無効のデータが設定されたインデックス設定部と、
前記コマンドデコード部のデコード信号から前記外部から発行されたコマンドのインデックスを特定するとともに、前記インデックス設定部に設定されたデータから前記特定したインデックスのコマンドが有効か無効かを判断し、前記コマンドが有効の際には、前記コマンドに対応するレスポンス処理、ならびに前記コマンドによって規定された処理を実行させる検出信号を出力するコマンド検出信号生成部と、
前記検出信号に応じてレスポンスを生成し外部へ出力する前記レスポンス処理を行うレスポンス生成部とを備え、
前記不揮発性半導体メモリは、通常データを格納可能な第１領域と第２グループのコマンド処理を格納可能な第２領域とを有し、
前記不揮発性半導体メモリの第２領域に前記第２グループのコマンドが格納されている場合、前記第２グループのコマンドの処理を前記不揮発性記憶部に転送し、
前記インデックス設定部は、前記不揮発性記憶部に格納されている第１グループのコマンドについて有効か無効かを設定された後、前記不揮発性半導体メモリの第２領域に前記第２グループのコマンド処理が格納されている場合、前記第２グループのコマンドについて有効か無効かを設定することを特徴とするメモリカード。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリカードにおいて、
前記コントローラに、
データ書き込み指示コマンドに付随して、外部から入力される前記不揮発性半導体メモリに書き込むためのデータのデータ形式を検出するデータ検出部と、
各々のデータ形式毎に、前記外部から入力されるデータのデータ形式が有効か無効かのデータを設定したデータ形式設定部と、
前記データ検出部の検出結果と前記データ形式設定部の設定値とに基づいて、前記外部から発行されたデータが有効か無効かを判断し、検出信号として出力するデータ検出信号生成部とを備えたことを特徴とするメモリカード。
【請求項５】
請求項４記載のメモリカードにおいて、前記データ形式設定部はレジスタであり、各々のデータ形式の有効、無効の設定を、ファームウェアデータにより任意に変更できることを特徴とするメモリカード。
【請求項６】
請求項１〜５のいずれか１項に記載のメモリカードにおいて、
前記各々のコマンド毎にコマンドの有効、または無効の設定をファームウェアデータにより任意に設定可能であり、
前記外部からファームウェアデータの書き込みを要求するコマンドを受け取り、書き込まれるファームウェアデータを受信し、
前記受信したファームウェアデータを前記不揮発性半導体メモリのある領域に書き込み制御を行うことを特徴とするメモリカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリカードに関し、特に、マルチメディアカードにおける規格の変更、追加のフレキシブルな対応に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータや多機能端末機などの外部記憶メディアの１つとして、マルチメディアカードが広く知られている。マルチメディアカードは、デジタルビデオカメラの静止画像記録、携帯電話のデータ記録、携帯音楽プレーヤの音楽記録などのあらゆるデジタル情報に用いられている。
【０００３】
このマルチメディアカードは、標準化団体であるＭＭＣＡ（ＭｕｌｔｉＭｅｄｉａ  Ｃａｒｄ  Ａｓｓｏｃｉａｔｉｏｎ）によって規格化されたマルチメディアカード規格によって互換性が維持されている。
【０００４】
なお、この種のＩＣカードについて詳しく述べてある例としては、１９９０年１２月１日、株式会社工業調査会発行、大島雅志（編）、「電子材料」Ｐ２２〜Ｐ２６があり、この文献には、各種のＩＣカードにおける技術動向が記載されている。
【０００５】
【発明が解決しようとする課題】
ところが、上記のようなメモリカードにおいては、次のような問題点があることが本発明者により見い出された。
【０００６】
マルチメディアカードは、近年のインターネットの拡大、ならびに携帯電話などの普及に伴って誕生した歴史の浅い製品であり、マルチメディアカード規格においても、変更や追加などが頻繁に発生している。
【０００７】
マルチメディアカード規格に変更や追加などが発生した際には、ハードウェア、ならびにファームウェアの両方の変更を実施しなければならず、それに対応するためのコスト、および時間が大きくなってしまうという問題がある。
【０００８】
また、ホスト側においても、マルチメディアカード規格を満足していない機器が多数存在しており、このような場合にも、同様にマルチメディアカードのハードウェア、ファームウェアを変更して対応しなければならいという問題がある。
【０００９】
本発明の目的は、ファームウェアを変更するだけで、短時間で、かつ低コストに、規格の変更、追加などに対応することができるメモリカードおよびそのデータ書き換え方法を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
１．すなわち、本発明のメモリカードは、コントローラに、外部から発行されるコマンドをデコードするコマンドデコード部と、各々のコマンドが、有効か無効かをインデックス毎に設定したインデックス設定部と、該コマンドデコード部のデコード結果とインデックス設定部の設定値とに基づいて、発行されたコマンドが有効か無効かを判断し、検出信号として出力するコマンド検出信号生成部とを備えたものである。
２．また、前記第１項において、前記インデックス設定部はレジスタであり、各々のコマンドの有効、無効の設定を、ファームウェアデータにより任意に変更するものである。
３．前記コントローラには、外部から発行されるコマンドをデコードし、コマンドのインデックスを判断し、所定の出力先にデコード信号を出力するコマンドデコード部と、各々のコマンドのインデックス毎に有効、無効のデータが設定されたインデックス設定部と、デコード信号から外部から発行されたコマンドのインデックスを特定するとともに、インデックス設定部に設定されたデータから特定したインデックスのコマンドが有効か無効かを判断し、そのコマンドが有効の際には、対応するレスポンス処理、コマンドによって規定された処理を実行させる検出信号を出力するコマンド検出信号生成部とを備えたものである。
４．前記第１項〜第３項のいずれか１項に記載において、前記コントローラに、外部から入力されるデータ形式を検出するデータ検出部と、各々のデータ形式毎に、入力されるデータ形式が有効か無効かのデータを設定したデータ形式設定部と、データ検出部の検出結果とデータ形式設定部の設定値とに基づいて、発行されたデータが有効か無効かを判断し、検出信号として出力するデータ検出信号生成部とを備えたものである。
５．前記第４項のメモリカードにおいて、前記データ形式設定部がレジスタであり、各々のデータ形式の有効、無効の設定を、ファームウェアデータにより任意に変更するものである。
【００１２】
また、本願のその他の発明の概要を項に分けて簡単に示す。
【００１３】
１．以下のステップを含むメモリカードのデータ書き込み方法：
（ａ）外部からファームウェアデータの書き込みを要求するコマンドを受け取り、書き込まれるファームウェアデータを受信するステップ、
（ｂ）受信したファームウェアデータを不揮発性半導体メモリのある領域に書き込むステップ、
（ｃ）メモリカードの初期設定後、インデックス設定部の初期データを設定するステップ、
（ｄ）不揮発性半導体メモリにアクセスし、ファームウェアデータの有無をチェックするステップと、
（ｅ）不揮発性半導体メモリにファームウェアデータが存在する場合、そのファームウェアデータを読み込み、インデックス設定部のデータを新たに設定するステップ。
【００１４】
２．以下のステップを含むメモリカードのデータ書き込み方法：
（ａ）外部からファームウェアデータの書き込みを要求するコマンドを受け取り、書き込まれるファームウェアデータを受信するステップ、
（ｂ）受信したファームウェアデータを不揮発性半導体メモリのある領域に書き込むステップ、
（ｃ）メモリカードの初期設定後、データ形式設定部の初期データを設定するステップ、
（ｄ）不揮発性半導体メモリにアクセスし、ファームウェアデータの有無をチェックするステップ、
（ｅ）不揮発性半導体メモリに、ファームウェアデータが存在する場合、そのファームウェアデータを読み込み、データ形式設定部のデータを新たに設定するステップ。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１６】
図１は、本発明の一実施の形態によるメモリカードのブロック図、図２は、図１のメモリカードに設けられたコントローラのブロック図、図３は、図１のメモリカードに設けられたコマンドイネーブルレジスタに有効と設定されているコマンドを受け取った際のコントローラの動作説明図、図４は、図１のメモリカードに設けられたコマンドイネーブルレジスタに無効と設定されているコマンドを受け取った際のコントローラの動作説明図、図５は、図１のメモリカードにおける設定変更を行うファームウェアの書き込み動作を示すフローチャート、図６は、図１のメモリカードにおけるコマンドイネーブルレジスタのレジスタデータの設定変更動作のフローチャート、図７は、図１のメモリカードにシリアル転送されるデータの構成説明図、図８は、図７のデータにおけるスタートバイトの一例を示す説明図である。
【００１７】
本実施の形態において、メモリカード１は、マルチメディアカードからなり、デジタルビデオカメラ、携帯電話、携帯音楽プレーヤやパーソナルコンピュータなどにおけるホストＨＴの外部記憶メディアとして用いられる。
【００１８】
メモリカード１は、図１に示すように、フラッシュメモリ（不揮発性半導体メモリ）２、ならびにコントローラ３から構成される。フラッシュメモリ２は、電気的にデータの書き換え、消去が可能な不揮発性半導体メモリである。
【００１９】
コントローラ３は、ホストＨＴと接続されており、フラッシュメモリ２の制御を司り、フラッシュメモリ２に格納されたプログラムやデータなどを読み出し、所定の処理を行うとともに、データの書き込み動作指示を行う。
【００２０】
また、コントローラ３は、図２に示すように、制御部４、メモリ５，５ａ、コマンドデコード回路（コマンドデコード部）６、コマンド検出信号生成回路（コマンド検出信号生成部、レジスタ）７、コマンドイネーブルレジスタ（インデックス設定部）８、データディテクト回路（データ検出部）９、データ検出信号生成回路（データ検出信号生成部）１０、データイネーブルレジスタ（データ形式設定部）１１、ならびにコントロールロジック１２から構成されている。
【００２１】
制御部４は、コマンド検出信号生成回路７、およびデータ検出信号生成回路１０から出力される検出信号に基づいて、コマンド、データ形式が有効か無効かを判断し、有効の場合には、所定のレスポンス処理、およびコマンド毎に規定された処理を実行するとともに、コントロールロジック１２に割り込み信号を出力してコマンド受信を知らせ、コントロールロジック１２の制御に基づいてデータ転送などの処理を行う。
【００２２】
メモリ５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、またはＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの不揮発性メモリであり、メモリ５ａは、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性メモリである。
【００２３】
メモリ５には、コントロールロジック１２を動作させる制御プログラムなどが格納されており、メモリ５ａは、コントロールロジック１２のワークエリアとして用いられる。
【００２４】
コマンドデコード回路６は、ホストＨＴから送信されたコマンドＣＭＤ０〜ＣＭＤｎをデコードし、そのデコード結果をコマンド検出信号生成回路７に出力する。
【００２５】
このホストＨＴから発行されるコマンドＣＭＤ０〜ＣＭＤｎは、カードの認識処理、リード、ライト、イレースなどのメモリカード１に対して命令するすべての処理である。
【００２６】
コマンド検出信号生成回路７は、論理積回路７1 〜７n から構成されており、これら論理積回路７1 〜７n は、コマンドＣＭＤ０〜ＣＭＤｎ毎にそれぞれ対応して設けられている。コマンドデコード回路６は、コマンドＣＭＤ０〜ＣＭＤｎのデコード結果を、対応する論理積回路７1 〜７n のいずれかに出力する。
【００２７】
論理積回路７1 〜７n の一方の入力部には、コマンドデコード回路６が接続されている。コマンドデコード回路６は、コマンドＣＭＤ０〜ＣＭＤｎのデコード結果に基づいて、対応する論理積回路７1 〜７n のいずれかに出力する。
【００２８】
また、該論理積回路７1 〜７n の他方の入力部には、コマンドイネーブルレジスタ８に設定されたレジスタデータが入力されるように接続されている。
【００２９】
コマンド検出信号生成回路７は、論理積回路７1 〜７n によって、コマンドデコード回路６のデコード信号とコマンドイネーブルレジスタ８に設定されているレジスタデータとの論理積を取り、該当するコマンドの検出信号を制御部４に出力する。
【００３０】
コマンドイネーブルレジスタ８は、ホストＨＴから発行されたコマンドが有効であるか無効であるかを、個々のコマンドインデックス毎にレジスタデータとして予め格納して設定する。この場合、有効なコマンドには、Ｈｉ信号が設定されている。
【００３１】
データディテクト回路９は、ホストＨＴからシリアル転送によって発行されるデータ形式を検出し、データ検出信号生成回路１０に出力する。データ検出信号生成回路１０は、ｎ個の論理積回路１０1 〜１０n から構成されている。
【００３２】
論理積回路１０1 〜１０n の一方の入力部には、データディテクト回路９が接続されており、該データディテクト回路９は、検出結果の信号を対応する論理積回路１０1 〜１０n のいずれかに出力する。
【００３３】
さらに、論理積回路１０1 〜１０n の他方の入力部には、データイネーブルレジスタ１１に設定されたレジスタデータが入力されるように接続されている。
【００３４】
データ検出信号生成回路１０は、論理積回路１０1 〜１０n によって、データディテクト回路９の検出信号とデータイネーブルレジスタ１１に設定されているレジスタデータとの論理積を取り、該当するデータ形式の検出信号を制御部４に出力する。
【００３５】
データイネーブルレジスタ１１は、データ形式Ｎｏ．０〜Ｎｏ．ｎまでのデータ形式に対応するレジスタデータを設定することができ、ホストＨＴから受け取ったデータ形式が有効であるか無効であるかを個々のデータ形式毎にレジスタデータとして予め設定されている。ここでも、有効なコマンドにはＨｉ信号が設定されている。
【００３６】
コントロールロジック１２は、コマンドイネーブルレジスタ８、ならびにデータイネーブルレジスタ１１に、レジスタデータを設定する制御を司るとともに、コントローラ３におけるすべての制御を司る。
【００３７】
次に、本実施の形態のメモリカード１における作用について説明する。
【００３８】
まず、コマンドイネーブルレジスタ８に有効と設定されているコマンドがホストＨＴから入力された場合のメモリカードの動作について、図３を用いて説明する。この図３においては、コマンド入力時の動作を説明した図であるので、データディテクト回路９、データ検出信号生成回路１０、およびデータイネーブルレジスタ１１は省略している。
【００３９】
さらに、図３では、予めコマンドイネーブルレジスタ８のレジスタデータが、コマンドＣＭＤ０〜ＣＭＤｎ−１までが有効（Ｈｉ）に設定され、コマンドＣＭＤｎが無効（Ｌｏ）に設定されているものとする。
【００４０】
図３に示すように、ホストＨＴから、あるコマンドＣＭＤ１が転送されると、このコマンドＣＭＤ１は、コマンドデコード回路６に入力される。コマンドデコード回路６は、受け取ったコマンドＣＭＤ１をデコードし、該コマンドＣＭＤ１に対応するコマンド検出信号生成回路７の論理積回路７2 の一方の入力部に、デコード結果の信号（Ｈｉ）を出力する。
【００４１】
前述したように、コマンドイネーブルレジスタ８は、コマンドＣＭＤ０〜ＣＭＤｎ−１が有効（Ｈｉ）、コマンドＣＭＤｎが無効（Ｌｏ）に設定されているので、コマンド検出信号生成回路７の論理積回路７1 〜７n-1 の他方の入力部にはＨｉ信号が入力され、論理積回路７n の他方の入力部にはＬｏ信号が入力されていることになる。
【００４２】
よって、論理積回路７2 の両方の入力部にはＨｉ信号がそれぞれ入力されることになり、該論理積回路７2 からは検出信号としてＨｉレベルの信号が出力される。他の論理積回路７1 ，７3 〜７n においては、一方の入力部にＨｉ信号が入力されないのでＬｏ信号出力となっている。
【００４３】
該論理積回路７2 の検出信号を制御部４が受けると、制御部４は、コントロールロジック１２に割り込み信号を出力し、その割り込み信号を受け取ったコントロールロジック１２は、コマンドＣＭＤ１に対応するレスポンス処理、ならびに該コマンドＣＭＤ１によって規定された処理を実行する。
【００４４】
また、コマンドイネーブルレジスタ８に無効と設定されているコマンドがホストＨＴから入力された際のメモリカード１の動作について、図４を用いて説明する。この図４においても、コマンド入力時の動作を説明図であるので、データディテクト回路９、データ検出信号生成回路１０、およびデータイネーブルレジスタ１１は省略している。
【００４５】
さらに、図４でも、予めコマンドイネーブルレジスタ８のレジスタデータが、コマンドＣＭＤ０〜ＣＭＤｎ−１までが有効（Ｈｉ）に設定され、コマンドＣＭＤｎが無効（Ｌｏ）に設定されているもとする。
【００４６】
図４に示すように、ホストＨＴから、あるコマンドＣＭＤｎが転送されると、該コマンドＣＭＤｎがコマンドデコード回路６に入力される。コマンドデコード回路６は、受け取ったコマンドＣＭＤｎをデコードし、該コマンドＣＭＤｎに対応するコマンド検出信号生成回路７の論理積回路７n の一方の入力部に、Ｈｉ信号を出力する。
【００４７】
ここでも、コマンドイネーブルレジスタ８は、コマンドＣＭＤ０〜ＣＭＤｎ−１が有効（Ｈｉ）、コマンドＣＭＤｎが無効（Ｌｏ）に設定されているので、コマンド検出信号生成回路７の論理積回路７1 〜７n-1 の他方の入力部にはＨｉ信号が入力され、論理積回路７n の他方の入力部にはＬｏ信号が入力されていることになる。
【００４８】
論理積回路７n の一方の入力部だけにＨｉ信号が入力されることになり、該論理積回路７2 からは検出信号が出力されず、Ｌｏ信号のままとなる。他の論理積回路７1 ，７3 〜７n においても同様に、一方の入力部にはＨｉ信号が入力されないのでＬｏ信号出力となっている。
【００４９】
よって、制御部４には検出信号が入力されないので、コントロールロジック１２が入力されたコマンドＣＭＤｎを無視し、結果的にコマンドＣＭＤｎは無効となる。
【００５０】
また、コマンドイネーブルレジスタ８によるコマンドＣＭＤ１〜ＣＭＤｎの有効／無効の設定変更について説明する。
【００５１】
このコマンドイネーブルレジスタ８の設定変更を行うファームウェアの書き込みについて、図５のフローチャートを用いて説明する。
【００５２】
まず、製品出荷前のメモリカード１をエミュレータに搭載し、電源電圧を供給する。これにより、メモリカード１は、初期化動作としてパワーオンリセット処理を行う（ステップＳ１０１）。このステップＳ１０１の処理において、コマンドイネーブルレジスタ８には初期設定のレジスタデータが設定される。
【００５３】
パワーオンリセット処理が終了すると、メモリカード１は、コマンド待ち状態となる（ステップＳ１０２）。このとき、エミュレータから、メモリカード１のシステム情報の書き換え、および不良解析などに使用するデバッグコマンドを発行し（ステップＳ１０３）、該メモリカード１をデバッグモードに移行させる。
【００５４】
その後、エミュレータからファームウェアデータ書き込みコマンドを発行し（ステップＳ１０４）、変更したレジスタデータを含むモジュール単位のファームウェアデータを出力する。
【００５５】
メモリカード１が、変更したレジスタデータを含むファームウェアデータを受信すると（ステップＳ１０５）、コントロールロジック１２によって、受信したファームウェアデータがフラッシュメモリ２のある特定領域に書き込まれる（ステップＳ１０６）。これにより、ファームウェアデータの書き込みが終了となる。
【００５６】
次に、コマンドイネーブルレジスタ８のレジスタデータの設定変更について、図６のフローチャートを用いて説明する。
【００５７】
メモリカード１に電源が投入されると、コントロールロジック１２の初期設定が行われる（ステップＳ２０１）。その後、メモリ５に格納されたファームウェアデータに基づいて、コマンドイネーブルレジスタ８におけるレジスタデータの初期設定が行われる（ステップＳ２０２）。
【００５８】
そして、コントロールロジック１２がフラッシュメモリ２の特定領域を検索し、ファームウェアの有無をチェックする（ステップＳ２０３）。このステップＳ２０３の処理において、検索した特定領域にファームウェアが存在する場合には、そのファームウェアを読み込み、メモリ５ａに一時的に格納する（ステップＳ２０４）。
【００５９】
コントロールロジック１２は、メモリ５ａに格納されたファームウェアデータに基づいてコマンドイネーブルレジスタ８のレジスタデータを新たに設定し（ステップＳ２０５）、パワーオンリセット処理を終了する（ステップＳ２０６）。
【００６０】
また、ステップＳ２０３の処理において、特定領域にファームウェアが存在しない場合も、ステップＳ２０６の処理を行う。
【００６１】
そして、これらの処理によってパワーオンリセット処理が終了となり、レジスタデータが変更されたことになり、メモリカード１は、コマンド待ち状態となる。
【００６２】
さらに、データイネーブルレジスタ１１に設定されたレジスタデータによるシリアル転送のデータ形式の有効／無効の判断について説明する。
【００６３】
まず、転送されるシリアルのデータは、図７に示すように、スタートバイト、８〜２０４８ビットのデータ、ならびに１６ビットのＣＲＣ（Ｃｙｃｌｅ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅｓ）データから構成されている。
【００６４】
スタートバイトは、データの転送開始を示すデータである。このスタートバイトは、図８に示すように、１コマンドに対して１ブロックの転送が可能なシングルブロックライト時、ならびに１コマンドに対して複数のブロックの転送が可能なマルチブロックライト時などのデータ形式毎にそれぞれ設定されている。
【００６５】
たとえば、データイネーブルレジスタ１１におけるデータ形式Ｎｏ．０〜Ｎｏ．ｎのうち、データ形式Ｎｏ．０にシングルブロックライトが、データ形式Ｎｏ．１にマルチブロックライトがそれぞれ割り付けられているものとする。
【００６６】
この場合、データ形式Ｎｏ．０、およびデータ形式Ｎｏ．１のレジスタデータがいずれもＨｉ信号に設定されていれば、シングルブロックライト、マルチブロックライトの両方が有効に設定されている。
【００６７】
このとき、データ形式Ｎｏ．１のスタートバイトがホストＨＴから転送されると、データディテクト回路９は、該データ形式Ｎｏ．１に対応するデータ検出信号生成回路１０の論理積回路１０2 の一方の入力部に、デコード結果の信号（Ｈｉ）を出力する。
【００６８】
前述したように、コマンドイネーブルレジスタ８は、データ形式Ｎｏ．１が有効（Ｈｉ）に設定されているので、論理積回路１０2 からはデータ形式Ｎｏ．１を検出した検出信号（Ｈｉ）を出力する。制御部４が検出信号を受けとるとコントロールロジック１２は、ホストＨＴから転送されたデータを受け取り、所定の処理を行う。
【００６９】
また、データイネーブルレジスタ１１のデータ形式Ｎｏ．１に対応するレジスタデータが、無効（Ｌｏ）に設定されている際には、データ形式Ｎｏ．１のスタートバイトがホストＨＴから転送されても、データ検出信号生成回路１０の論理積回路１０2 が、Ｌｏ信号出力となるので、コントロールロジック１２は、ホストＨＴから転送されたデータを受け付けない。
【００７０】
さらに、このデータイネーブルレジスタ１１におけるレジスタデータにおいても、前述したステップＳ１０１〜Ｓ１０６処理、ならびにステップＳ２０１〜Ｓ２０７の処理によって設定変更することができる。
【００７１】
それにより、本実施の形態によれば、コマンドイネーブルレジスタ８、ならびにデータイネーブルレジスタ１１のレジスタデータをファームウェアデータによって変更するだけで、コマンド、データ形式の有効／無効をそれぞれ設定することができるので、マルチメディアカード規格に仕様変更や追加などにフレキシブルに対応することができる。
【００７２】
また、マルチメディアカード規格に仕様変更や追加に伴うメモリカード１のハードウェアの変更などが不要となるので、該メモリカード１を低コストで、かつ短期間に市場に投入することができる。
【００７３】
さらに、本実施の形態においては、各コマンド、ならびにデータ形式の有効／無効を設定することのできるメモリカード１について記載したが、これらコマンド、データ形式の有効／無効の設定だけではなく、ホストＨＴに対して返信するコマンド毎に規定されたフォーマットのレスポンスを選択する機能を備えるようにしてもよい。
【００７４】
この場合、メモリカード１のコントローラ３ａには、図９に示すように、レスポンス生成回路１３が新たに追加された構成になっている。さらに、コマンドイネーブルレジスタ８ａには、新たに各々のコマンドインデックス毎に対応したレスポンスのタイプを選択するレスポンスタイプセレクト信号を設定する機能が付加されている。ここで、図９においては、データディテクト回路９、データ検出信号生成回路１０、およびデータイネーブルレジスタ１１はそれぞれ省略している。
【００７５】
レスポンス生成回路１３は、コマンドイネーブルレジスタ８ａに設定されたレスポンスタイプセレクト信号に基づいて、各々のコマンドインデックス毎に対応したレスポンスを生成してホストＨＴに返信する。
【００７６】
レスポンス生成回路１３は、たとえば、２ビットのレスポンスタイプセレクト信号から対応するレスポンスを生成し、ホストＨＴに返信する。たとえば、ホストＨＴに返信するレスポンスが、レスポンスＴｙｐｅ０〜Ｔｙｐｅ３まであり、レスポンスタイプＴｙｐｅ０には、’００’、Ｔｙｐｅ１は’０１’、レスポンスタイプＴｙｐｅ２には’１０’Ｔｙｐｅ３は’１１’がそれぞれ設定されていものとする。
【００７７】
そして、ホストＨＴから有効なコマンドＣＭＤ１が入力された際には、コントロールロジック１２の制御に基づいてレスポンス生成回路１３が、該コマンドＣＭＤ１に対応するレスポンスタイプセレクト信号を読み出す。
【００７８】
レスポンス信号’１１’を読み出したレスポンス生成回路１３は、コマンドＣＭＤ１に対応するレスポンスＴｙｐｅ３のレスポンスを生成してホストＨＴに返信する。
【００７９】
それにより、コマンドイネーブルレジスタ８ａのレスポンスタイプセレクト信号を変更するだけで、対応できるレスポンス処理の仕様追加、変更に対応することができ、メモリカード１の対応をフレキシブルにすることができる。
【００８０】
さらに、コントロールロジック１２への割り込み信号発生を制御するレジスタを追加し、コマンド毎に割り込み信号の発生を制御できるようにしてもよい。
【００８１】
これにより、コマンドに対するレスポンスは返すが、コントロールロジック制御による内部動作を実施しないように変更可能となる。
【００８２】
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８３】
前記実施の形態では、各々のコマンド毎にレジスタデータを設定する構成としたが、基本コマンド、消去コマンド、リードコマンド、ライトコマンドなどのコマンドクラス毎に一括して有効／無効を設定するようにしてもよい。
【００８４】
たとえば、コマンドＣＭＤ０〜ＣＭＤ６までのコマンドがある場合に、前記実施の形態では、図１０の上方に示すように、コマンドＣＭＤ０〜ＣＭＤ６に有効（Ｈｉ）、あるいは無効（Ｌｏ）のレジスタデータをそれぞれ設定していたが、図１０の下方に示すように、コマンドＣＭＤ０〜ＣＭＤ２、コマンドＣＭＤ３，ＣＭＤ４、およびコマンドＣＭＤ５，ＣＭＤ６をまとめて有効／無効のレジスタデータをそれぞれ設定するようにしてもよい。
【００８５】
それにより、レジスタ数を削減により回路規模を小さくすることができ、メモリカード１の低コスト化が可能になるとともに、ファームウェアデータの設定作業を簡略化することができる。
【００８６】
また、制御プログラムなどが格納されたメモリに、デフォルトでサポートしていないコマンドの処理プログラムを格納しておき、予め取り決めしておいたホストコマンドによってコマンドイネーブルレジスタのレジスタデータを設定変更するようにしてもよい。
【００８７】
それにより、ファームウェアデータを変更することなく、コマンドの追加、またはホスト専用のコマンドなどをサポートすることができる。
【００８８】
【発明の効果】
本願によって開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００８９】
（１）ファームウェアデータを書き換えるだけで、コマンドやデータ形式などの変更、追加に迅速に対応することができる。
【００９０】
（２）また、マルチメディアカード規格に仕様変更や追加などが生じても、メモリカードのハードウェア変更を不要にすることができる。
【００９１】
（３）上記（１）、（２）により、新しいマルチメディアカード規格に対応したメモリカードの製品、またはサンプルをいち早く、かつ低コストで提供することが可能となり、市場変化にフレキシブルに対応することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるメモリカードのブロック図である。
【図２】図１のメモリカードに設けられたコントローラのブロック図である。
【図３】図１のメモリカードに設けられたコマンドイネーブルレジスタに有効と設定されているコマンドを受け取った際のコントローラの動作説明図である。
【図４】図１のメモリカードに設けられたコマンドイネーブルレジスタに無効と設定されているコマンドを受け取った際のコントローラの動作説明図である。
【図５】図１のメモリカードにおける設定変更を行うファームウェアの書き込み動作を示すフローチャートである。
【図６】図１のメモリカードにおけるコマンドイネーブルレジスタのレジスタデータの設定変更動作のフローチャートである。
【図７】図１のメモリカードにシリアル転送されるデータの構成説明図である。
【図８】図７のデータにおけるスタートバイトの一例を示す説明図である。
【図９】本発明の他の実施の形態によるメモリカードに設けられたコントローラの動作説明図である。
【図１０】本発明の他の実施の形態によるメモリカードのコマンドイネーブルレジスタに設定されるレジスタデータの設定例を示す説明図である。
【符号の説明】
１  メモリカード
２  フラッシュメモリ（不揮発性半導体メモリ）
３  コントローラ
４  制御部
５，５ａ  メモリ
６  コマンドデコード回路（コマンドデコード部）
７  コマンド検出信号生成回路（コマンド検出信号生成部、レジスタ）
７1 〜７n   論理積回路
８  コマンドイネーブルレジスタ（インデックス設定部）
９  データディテクト回路（データ検出部）
１０  データ検出信号生成回路（データ検出信号生成部）
１０1 〜１０n   論理積回路
１１  データイネーブルレジスタ（データ形式設定部）
１２  コントロールロジック
ＨＴ  ホスト
【図１】
0004294894.tif 000002
【図２】
0004294894.tif 000003
【図３】
0004294894.tif 000004
【図４】
0004294894.tif 000005
【図５】
0004294894.tif 000006
【図６】
0004294894.tif 000007
【図７】
0004294894.tif 000008
【図８】
0004294894.tif 000009
【図９】
0004294894.tif 000010
【図１０】
0004294894.tif 000011