(57)【要約】【課題】データ転送速度を向上させる。【解決手段】ホスト機器２００に装着して使用されるメモリカード１００であって、ホスト機器２００から供給されるクロック信号ＣＬＫの立ち上がりエッジと立ち下がりエッジとに同期して、データを送受信するデータ制御回路１７を含む。【選択図】      図３
2007011788.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に装着して使用されるメモリカードであって、
前記ホスト機器から供給されるクロック信号の立ち上がりエッジと立ち下がりエッジとに同期して、データを送受信するデータ制御回路を具備することを特徴とするメモリカード。
【請求項２】
前記クロック信号の立ち上がりエッジと立ち下がりエッジとの一方に同期して、コマンドを受信するコマンド制御回路をさらに具備することを特徴とする請求項１記載のメモリカード。
【請求項３】
前記データ制御回路は、前記クロック信号の立ち上がりエッジと立ち下がりエッジとに同期してデータを送受信するダブルエッジモードと、前記クロック信号の立ち上がりエッジと立ち下がりエッジとの一方に同期してデータを送受信するシングルエッジモードとを実行し、
前記コマンド制御回路は、前記ホスト機器から送信されるスイッチコマンドに基づいて、前記シングルエッジモードと前記ダブルエッジモードとを切り替えることを特徴とする請求項１又は２に記載のメモリカード。
【請求項４】
前記データ制御回路は、前記ダブルエッジモードと前記シングルエッジモードとの切り替えを示すステータスデータを前記ホスト機器に送信することを特徴とする請求項３記載のメモリカード。
【請求項５】
メモリカードが装着されるホスト機器であって、
クロック信号の立ち上がりエッジと立ち下がりエッジとに同期してデータを送受信するダブルエッジモードを前記メモリカードがサポートしているか否かを確認するためのコマンドを前記メモリカードに送信し、前記メモリカードが前記ダブルエッジモードをサポートしている場合に、前記メモリカードに対して前記ダブルエッジモードを実行する制御回路を具備することを特徴とするホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを備えたメモリカード及びそのホスト機器に係り、特にフラッシュメモリを備えたメモリカード及びそのホスト機器に関する。
【背景技術】
【０００２】
例えばデジタルカメラや携帯電話などのデータ記憶媒体として小型のメモリカードが開発されている。このメモリカードは、デジタルカメラや携帯電話などのホスト機器に装着された状態において、ホスト機器とデータの送受信が可能とされている。このメモリカードの一種として、記憶回路にフラッシュメモリを使用したＳＤＴＭ（Secure Digital）メモリカードが知られている。
【０００３】
このＳＤＴＭメモリカードにおいて、近年、書き込み／読み出し速度の高速化が要求されており、メモリカードバスのバス転送速度の高速化も求められている。ＳＤＴＭメモリカードでは、物理仕様Ver.1.1によりメモリカードバスの転送クロックの高速化（２５ＭＨｚ→５０ＭＨｚ）が規定され、より高速なデータ転送が可能となっている。
【０００４】
今後さらに高速なデータ転送が要求されることが予想されるが、そのためには、（１）転送クロックのさらなる高速化、（２）データ転送幅（現在では、最大で４ビットパラレル）を増やす、といった手段が考えられる。
【０００５】
しかし、（１）の転送クロックの高速化は、ノイズの影響が増大し、或いは高速化されたクロックよってタイミング規定が厳しくなるなどの問題がある。また、（２）のバス幅の増加は、ＳＤＴＭメモリカードの入出力ピン数が増えるため、コストの増大につながるなどの問題がある。
【０００６】
この種の関連技術として、バス上でストリームデータの転送を効率よく行う技術が開示されている（特許文献１参照）。
【特許文献１】特開２００１−２１６２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、データ転送速度を向上させることが可能なメモリカード及びそのホスト機器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一視点に係るメモリカードは、ホスト機器に装着して使用されるメモリカードであって、前記ホスト機器から供給されるクロック信号の立ち上がりエッジと立ち下がりエッジとに同期して、データを送受信するデータ制御回路を具備する。
【０００９】
本発明の一視点に係るホスト機器は、メモリカードが装着されるホスト機器であって、クロック信号の立ち上がりエッジと立ち下がりエッジとに同期してデータを送受信するダブルエッジモードを前記メモリカードがサポートしているか否かを確認するためのコマンドを前記メモリカードに送信し、前記メモリカードが前記ダブルエッジモードをサポートしている場合に、前記メモリカードに対して前記ダブルエッジモードを実行する制御回路を具備する。
【発明の効果】
【００１０】
本発明によれば、データ転送速度を向上させることが可能なメモリカード及びそのホスト機器を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１２】
図１は、本発明の一実施形態に係るメモリカード１００の構成を示す概略図である。メモリカード１００は、例えばＳＤＴＭメモリカードから構成される。このメモリカード１００は、通常、ホスト機器２００に装着されて使用され、ホスト機器２００に対して一種の外部記憶装置として用いられる。ホスト機器２００としては、画像データ、音楽データ或いはＩＤデータなどの各種データを処理するパーソナルコンピュータやデジタルスチルカメラ等を含む情報処理装置が挙げられる。
【００１３】
メモリカード１００は、ホスト機器２００との間でデータの送受信を行う。このメモリカード１００は、フラッシュメモリ１１、このフラッシュメモリ１１を制御するカードコントローラ１２、及びコネクタ１３（ピン１乃至ピン９を含む）を備えている。
【００１４】
コネクタ１３は、メモリカード１００がホスト機器２００に装着された状態で、ホスト機器２００と電気的に接続される。コネクタ１３に含まれるピン１乃至ピン９に対する信号の割り当ては、例えば図２に示すようになっている。データＤＡＴ０，ＤＡＴ１，ＤＡＴ２，ＤＡＴ３はそれぞれ、ピン７，ピン８，ピン９，ピン１に割り当てられている。また、ピン１は、カード検出信号ＣＤにも割り当てられている。コマンドＣＭＤと、このコマンドＣＭＤに対するメモリカード１００の応答信号であるレスポンスＲＥＳは、ピン２に割り当てられている。クロック信号ＣＬＫは、ピン５に割り当てられている。電源電圧ＶＤＤはピン４に、接地電圧ＶＳＳ１はピン３に、接地電圧ＶＳＳ２はピン６に割り当てられている。
【００１５】
フラッシュメモリ１１は、不揮発性半導体メモリであり、複数のＮＡＮＤ型のＥＥＰＲＯＭにより構成される。ホスト機器２００から送信されたデータなどは、このフラッシュメモリ１１に記憶される。
【００１６】
図３は、図１に示したメモリカード１００の構成を示すブロック図である。コネクタ１３は、バス１４を介してカードコントローラ１２に接続されている。バス１４は、ＣＬＫライン、ＣＭＤ／ＲＥＳライン、ＤＡＴ０ライン、ＤＡＴ１ライン、ＤＡＴ２ライン、ＣＤ／ＤＡＴ３ライン、ＶＤＤライン、ＶＳＳ１ライン、及びＶＳＳ２ラインを含む。カードコントローラ１２は、例えば８ビットのバス２２を介してフラッシュメモリ１１と接続されている。
【００１７】
カードコントローラ１２は、ホストインタフェース回路１５、コマンド制御回路１６、データ制御回路１７、ＭＰＵ（Micro processing unit）１８、ＲＯＭ（Read Only Memory）１９、ＲＡＭ（Random Access Memory）２０、及びメモリインタフェース回路２１を備えている。
【００１８】
ホストインタフェース回路１５は、コネクタ１３を介してホスト機器２００と接続されており、ＭＰＵ１８の制御のもと、所定のプロトコルに従ってコマンド或いは各種データ等の送受信を行う機能ブロックである。
【００１９】
コマンド制御回路１６は、ホスト機器２００から送信されるコマンドＣＭＤを受け取り、このコマンドＣＭＤを解釈する。また、コマンド制御回路１６は、コマンドＣＭＤに対する応答信号であるレスポンスＲＥＳを生成し、このレスポンスＲＥＳをホスト機器２００に送信する。コマンド制御回路１６の具体的な動作は後述する。
【００２０】
データ制御回路１７は、ホスト機器２００から送信されるコマンドＣＭＤに基づいて、データの送受信を行う。また、データ制御回路１７は、メモリカード１００の動作状態などを示すステータスデータ（ＳＴＡＴＵＳ）を生成し、このステータスデータをホスト機器２００に送信する。データ制御回路１７の具体的な動作は後述する。
【００２１】
ＭＰＵ１８は、メモリカード１００全体の動作を制御するものである。ＭＰＵ１８は、例えばメモリカード１００が電源供給を受けたときに、ＲＯＭ１９に格納されているファームウェア（制御プログラム）をＲＡＭ２０に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２０に作成する。また、ＭＰＵ１８は、ホスト機器２００から書き込みコマンド、読み出しコマンド、或いは消去コマンド等を受け取り、フラッシュメモリ１１に対して所定の処理を実行したり、データ転送処理を制御したりする。
【００２２】
ＲＯＭ１９は、ＭＰＵ１８により使用される制御プログラムなどを格納するメモリである。ＲＡＭ２０は、ＭＰＵ１８の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶するメモリである。メモリインタフェース回路２１は、カードコントローラ１２とフラッシュメモリ１１との間のインタフェース処理を行う機能ブロックである。
【００２３】
次に、メモリカード１００におけるデータ転送の動作モードについて説明する。図４は、データ転送の動作モードを説明するための図である。メモリカード１００の動作モードには、ＳＤモードとＳＰＩモードとがある。さらに、ＳＤモードのデータ転送には、データＤＡＴ０のみを用いる１ビットモードと、データＤＡＴ０〜ＤＡＴ３を用いる４ビットモードとの２つがある。これらの動作モードは、ホスト機器２００から供給されるバス幅変更コマンドによって設定される。
【００２４】
ここで、４ビット幅単位でデータ転送を行うＳＤモード（４ビットモード）では、データ用の４つのピン１，ピン７，ピン８，ピン９が全てデータ転送に使用される。一方、１ビット幅単位でデータ転送を行うＳＤモード（１ビットモード）では、ピン７のみがデータ転送に使用され、データ用のピン８，ピン９は使用されない。また、ピン１は、例えばメモリカード１００からホスト機器２００への非同期割り込み等のために使用される。
【００２５】
ＳＰＩモードは、ピン７がメモリカード１００からホスト機器２００へのデータ信号線（ＤＡＴＡ  ＯＵＴ）に用いられる。ピン２は、ホスト機器２００からメモリカード１００へのデータ信号線（ＤＡＴＡ  ＩＮ）に用いられる。ピン８，ピン９は、使用されない。また、ＳＰＩモードでは、ピン１がホスト機器２００からメモリカード１００へのチップセレクト信号ＣＳの送信に用いられる。
【００２６】
本実施形態では、メモリカード１００の動作モードとしてＳＤモード（４ビットモード）を例に説明するが、ＳＤモード（１ビットモード）、ＳＰＩモードである場合にも本実施形態を適用可能なことは勿論である。
【００２７】
次に、このように構成されたメモリカード１００の動作を説明する。初めに、メモリカード１００のデータ書き込み動作について説明する。図５は、データ書き込み動作を示すタイミングチャートである。また、図５には、バス１４上のコマンド及びデータ等を示している。
【００２８】
データ転送は、１つのデータブロック（例えば、５１２バイト）単位で行われる。また、１つのデータブロックには、例えば、１０バイトの冗長部（ＲＡ）が付加されて送信される。この冗長部（ＲＡ）には、エラー検出を行うためのＣＲＣ（Cyclic Redundancy Check）コード等が含まれる。このＣＲＣコードは、カードコントローラ１２が備えるＣＲＣ回路（図示せず）により生成される。また、ＣＲＣ回路は、ＣＲＣコードに基づいて、エラー検出を行う。
【００２９】
また、データ転送には、１つのブロック単位でデータ転送を行うシングルデータブロック転送と、複数のブロック単位でデータ転送を行うマルチデータブロック転送とがある。本実施形態では、マルチブロックリード動作（multiple block read operation）、及びマルチブロックライト動作（multiple block write operation）を例に説明するが、シングルブロックデータ転送に適用することも可能である。
【００３０】
先ず、ホスト機器２００は、データ書き込みを開始するために、ライトコマンド（Ｗ−ＣＭＤ）をメモリカード１００に送信する。メモリカード１００は、このライトコマンド（Ｗ−ＣＭＤ）を受け取る。そして、コマンド制御回路１６は、ライトコマンド（Ｗ−ＣＭＤ）を解釈し、このライトコマンド（Ｗ−ＣＭＤ）に対するレスポンス（ＲＥＳ）を生成する。このレスポンス（ＲＥＳ）は、ホスト機器２００に送信される。
【００３１】
次に、ホスト機器２００は、ブロックデータをメモリカード１００に送信する。コマンド制御回路１６は、ブロックデータを受け取った旨を示すレスポンス（ＲＥＳ）を生成する。さらに、データ制御回路１７は、ホスト機器２００から送信されたブロックデータをフラッシュメモリ１１に書き込む。また、データ制御回路１７は、フラッシュメモリ１１にデータを書き込んでいる間、ローレベルのビシー信号（ｂｕｓｙ）を生成する。このビシー信号（ｂｕｓｙ）は、ＤＡＴ０ラインを介してホスト機器２００に送信される。
【００３２】
同様に、ホスト機器２００から送信された複数のデータブロックのマルチブロックライト動作（multiple block write operation）が行われる。
【００３３】
次に、ホスト機器２００は、データ書き込みを停止するために、ストップコマンド（Ｓ−ＣＭＤ）をメモリカード１００に送信する。メモリカード１００は、このストップコマンド（Ｓ−ＣＭＤ）を受け取る。そして、コマンド制御回路１６は、ストップコマンド（Ｓ−ＣＭＤ）を解釈し、このストップコマンド（Ｓ−ＣＭＤ）に対するレスポンス（ＲＥＳ）を生成する。このレスポンス（ＲＥＳ）は、ホスト機器２００に送信される。このようしして、メモリカード１００は、データストップ動作（data stop operation）を実行する。その後、メモリカード１００は、データ転送を終了する。
【００３４】
次に、メモリカード１００のデータ読み出し動作について説明する。図６は、データ読み出し動作を示すタイミングチャートである。また、図６には、バス１４上のコマンド及びデータ等を示している。
【００３５】
先ず、ホスト機器２００は、データ読み出しを開始するために、リードコマンド（Ｒ−ＣＭＤ）を発効し、このリードコマンド（Ｒ−ＣＭＤ）をメモリカード１００に送信する。メモリカード１００は、このリードコマンド（Ｒ−ＣＭＤ）を受け取る。そして、コマンド制御回路１６は、このリードコマンド（Ｒ−ＣＭＤ）を解釈し、このリードコマンド（Ｒ−ＣＭＤ）に対するレスポンス（ＲＥＳ）を生成する。このレスポンス（ＲＥＳ）は、コマンド制御回路１６により、ホスト機器２００に送信される。
【００３６】
次に、データ制御回路１７は、フラッシュメモリ１１からデータブロック（data block）を読み出す。このデータブロックは、ホスト機器２００に送信される。同様に、複数のデータブロックがホスト機器２００に送信される。
【００３７】
次に、ホスト機器２００は、データ読み出し動作を停止するために、ストップコマンド（Ｓ−ＣＭＤ）をメモリカード１００に送信する。メモリカード１００は、このストップコマンド（Ｓ−ＣＭＤ）を受け取る。そして、コマンド制御回路１６は、ストップコマンド（Ｓ−ＣＭＤ）を解釈し、このストップコマンド（Ｓ−ＣＭＤ）に対するレスポンス（ＲＥＳ）を生成する。このレスポンス（ＲＥＳ）は、ホスト機器２００に送信される。このようにして、メモリカード１００は、データストップ動作（data stop operation）を実行する。その後、メモリカード１００は、データ転送を終了する。
【００３８】
次に、データ転送及びコマンド／レスポンス転送の動作について説明する。本実施形態では、データ転送は、クロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジを使用したダブルエッジ転送により行われる。一方、コマンド／レスポンス転送は、クロック信号ＣＬＫの立ち上がり（或いは、立ち下がり）エッジを使用したシングルエッジ転送により行われる。
【００３９】
図７は、データ転送及びコマンド／レスポンス転送のタイミングチャートである。また、図７には、バス１４上のコマンド及びデータ等を示している。なお、図７において、“ｔＣＹＣ”は、クロックサイクルタイムを示している。“ｔＬＣＹＣ”は、ローレベルのクロックタイムを示している。“ｔＨＣＹＣ”は、ハイレベルのクロックタイムを示している。
【００４０】
先ず、ホスト機器２００からメモリカード１００にデータが入力される書き込み動作（ＤＡＴ０〜３（入力））について説明する。ホスト機器２００は、クロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、ホスト機器２００は、所定のプロトコルに従ったセットアップタイムｔＤVＳとホールドタイムｔＤVＨとを満足するように、データ転送を行う。データ制御回路１７は、ホスト機器２００からダブルエッジ転送により送信されたデータを、クロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジで取り込む。そして、この取り込んだデータをフラッシュメモリ１１に書き込む。
【００４１】
次に、メモリカード１００からホスト機器２００にデータが出力される読み出し動作（ＤＡＴ０〜３（出力））について説明する。データ制御回路１７は、クロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、データ制御回路１７は、所定のプロトコルに従ったセットアップタイムｔＤＳとホールドタイムｔＤＨとを満足するように、データ転送を行う。ホスト機器２００は、メモリカード１００からダブルエッジ転送により送信されたデータを、クロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジで取り込む。
【００４２】
次に、ホスト機器２００からメモリカード１００へのコマンドＣＭＤ転送動作（ＣＭＤ（入力））について説明する。ホスト機器２００は、コマンドＣＭＤを発行する。そして、ホスト機器２００は、クロック信号ＣＬＫの立ち上がりエッジのみを用いてコマンドＣＭＤをメモリカード１００に送信する。この際、ホスト機器２００は、所定のプロトコルに従ったセットアップタイムｔＣVＳとホールドタイムｔＣVＨとを満足するように、コマンドＣＭＤの転送を行う。コマンド制御回路１６は、ホスト機器２００からシングルエッジ転送により送信されたコマンドＣＭＤを、クロック信号ＣＬＫの立ち上がりエッジのみを用いて取り込む。
【００４３】
次に、メモリカード１００からホスト機器２００へのレスポンスＲＥＳ転送動作（ＲＥＳ（出力））について説明する。コマンド制御回路１６は、ホスト機器２００から送信されたコマンドＣＭＤに対するレスポンスＲＥＳを生成する。そして、コマンド制御回路１６は、クロック信号ＣＬＫの立ち上がりエッジのみを用いてレスポンスＲＥＳをホスト機器２００に送信する。この際、コマンド制御回路１６は、所定のプロトコルに従ったセットアップタイムｔＣＳとホールドタイムｔＣＨとを満足するように、レスポンスＲＥＳ転送を行う。ホスト機器２００は、メモリカード１００からシングルエッジ転送により送信されたレスポンスＲＥＳを、クロック信号ＣＬＫの立ち上がりエッジのみを用いて取り込む。
【００４４】
このように、本実施形態では、コマンド／レスポンスをクロック信号ＣＬＫの立ち上がりエッジのみを用いて転送する。一方、データをクロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジを用いて転送する。
【００４５】
このようにしてデータ転送及びコマンド／レスポンス転送を行うことにより、複雑な処理が要求され、かつタイミング条件の厳しいＣＭＤラインの信号は、従来と同様の回路を使用することができ、かつ回路の実装が容易となる。さらに、マルチブロックデータ転送などで、実用上のデータ転送速度を決めるＤＡＴ０〜３ラインに対しては、クロック信号ＣＬＫの２倍の速度での転送が可能になり、実用上のデータ転送速度が大きく向上する。なお、マルチブロック転送の場合、ＣＭＤラインは、プロトコルの最初のコマンド及びレスポンスの転送に用いられるだけなので、実用上のデータ転送速度には大きな影響はない。
【００４６】
次に、データ転送をクロック信号ＣＬＫの立ち上がりエッジのみを用いて行うシングルエッジモードと、データ転送をクロック信号ＣＬＫの立ち上がりと立ち下がりとの両エッジを用いて行うダブルエッジモードとの切り替え動作について説明する。この切り替え動作は、ホスト機器２００が発行するスイッチコマンド（ＳＷ−ＣＭＤ）によって行われる。
【００４７】
スイッチコマンド（ＳＷ−ＣＭＤ）は、例えばチェックファンクションとセットファンクションとの２つのモードで使用することができる。例えばモード０は、チェックファンクションとして使用され、モード１はセットファンクションとして使用される。モードは、コマンド中の図示せぬモードビットにデータ“０”又は“１”を設定することにより切り替えられる。
【００４８】
ホスト機器２００がメモリカード１００をアクセスする場合、ホスト機器２００は、当該ホスト機器２００に接続されているメモリカード１００がどのような仕様であるかを認識する必要がある。このため、ホスト機器２００は、メモリカード１００の仕様を認識するため、スイッチコマンド（ＳＷ−ＣＭＤ）をモード０のチェックファンクションに設定してメモリカード１００に供給し、メモリカード１００から返送されたステータスデータ（ＳＴＡＴＵＳ）によりメモリカード１００の仕様を認識する。
【００４９】
次に、メモリカード１００がダブルエッジモードをサポートしている場合、ホスト機器２００は、スイッチコマンド（ＳＷ−ＣＭＤ）をモード１のセットファンクションに設定してメモリカード１００に供給し、メモリカード１００の機能（本実施形態では、ダブルエッジモード）を設定する。以後、ホスト機器２００は、メモリカード１００に対してダブルエッジモードでのデータ転送を実行する。
【００５０】
次に、スイッチコマンド（ＳＷ−ＣＭＤ）に対してメモリカード１００から返送されるステータスデータ（ＳＴＡＴＵＳ）について説明する。メモリカード１００は、モード０（チェックファンクション）のスイッチコマンド（ＳＷ−ＣＭＤ）を受け取ると、ホスト機器２００に対してステータスデータ（ＳＴＡＴＵＳ）を返送する。図８は、スイッチコマンド（ＳＷ−ＣＭＤ）に対するステータスデータ（ＳＴＡＴＵＳ）のデータフィールドの一例を示す図である。
【００５１】
ステータスデータ（ＳＴＡＴＵＳ）は、例えば６個のファンクショングループ１〜ファンクショングループ６を含む。ファンクショングループ１〜ファンクショングループ６には、メモリカード１００の拡張機能のサポート状況を示すデータがセットされる。
【００５２】
例えばフィールドＦ２のファンクショングループ６には、メモリカード１００のＩＣカード機能のサポート状況を示すデータがセットされる。フィールドＦ１には、このメモリカード１００にサポートされた拡張機能を使用する場合の最大消費電流を示すデータがセットされる。フィールドＦ３のファンクショングループ５には、メモリカード１００の高速バスモードのサポート状況、さらにダブルエッジモードのサポート状況を示すデータがセットされる。
【００５３】
また、フィールドＦ４には、このコマンドステータスのデータ構造（フォーマット）のバージョンを示すデータがセットされる。すなわち、コマンドステータスはカードバージョンによってフォーマットが異なっているため、このフィールドＦ４にバージョンを示すデータが設定される。このフィールドＦ４のデータが例えば“０００００００１”である場合、モード０において、続くフィールドＦ５にデータ構造が定義される。
【００５４】
次に、モード１（セットファンクション）のスイッチコマンド（ＳＷ−ＣＭＤ）の構成について説明する。モード１のスイッチコマンド（ＳＷ−ＣＭＤ）は、拡張機能を設定するための例えば２４ビットデータ（bit０−２３）を含んでいる。Bit０−３には、ファンクショングループ６のデータが設定され、Bit４−７には、ファンクショングループ５のデータが設定される。
【００５５】
具体的には、ファンクショングループ６のBit０には、ＩＣカード機能を無効にするためのデータが設定される。ファンクショングループ６のBit１には、ＩＣカード機能を有効にするためのデータが設定される。
【００５６】
ファンクショングループ５のBit４には、通常バスモードである通常バスクロック（例えば、２５ＭＨｚ）かつシングルエッジモードに設定するためのデータが設定される。ファンクショングループ５のBit５には、高速バスクロック（例えば、５０ＭＨｚ）かつシングルエッジモードに設定するためのデータが設定される。ファンクショングループ５のBit６には、高速バスクロックかつダブルエッジモードに設定するためのデータが設定される。また、Bit８−２３には、ファンクショングループ１〜４のデータが設定される。
【００５７】
図９は、シングルエッジモードとダブルエッジモードとの切り替え動作を示すタイミングチャートである。メモリカード１００は、例えば、起動時のデフォルトとしてシングルエッジモードになっているものとする。先ず、ホスト機器２００は、モード０（チェックファンクション）のスイッチコマンド（ＳＷ−ＣＭＤ）を発行する。このスイッチコマンド（ＳＷ−ＣＭＤ）は、クロック信号ＣＬＫの立ち上がりエッジに同期してメモリカード１００に送信される。
【００５８】
メモリカード１００がスイッチコマンド（ＳＷ−ＣＭＤ）を受け取ると、コマンド制御回路１６は、スイッチコマンド（ＳＷ−ＣＭＤ）を解釈する。また、コマンド制御回路１６は、クロック信号ＣＬＫの立ち上がりエッジに同期して、レスポンスＲＥＳをホスト機器２００に送信する。
【００５９】
さらに、データ制御回路１７は、このメモリカード１００のダブルエッジモードのサポート情報を含むステータスデータ（ＳＴＡＴＵＳ）をホスト機器２００にＤＡＴラインを使用して送信する。このステータスデータを用いて、ホスト機器２００は、ダブルエッジモードのサポート状況を認識する。
【００６０】
ここで、メモリカード１００がダブルエッジモードをサポートしていない場合、以後、ホスト機器２００は、メモリカード１００に対してシングルエッジモードを実行する。
【００６１】
一方、メモリカード１００がダブルエッジモードをサポートしている場合、ホスト機器２００は、モード１（セットファンクション）のスイッチコマンド（ＳＷ−ＣＭＤ）を発行する。このスイッチコマンド（ＳＷ−ＣＭＤ）は、クロック信号ＣＬＫの立ち上がりエッジに同期してメモリカード１００に送信される。
【００６２】
メモリカード１００がスイッチコマンド（ＳＷ−ＣＭＤ）を受け取ると、コマンド制御回路１６は、スイッチコマンド（ＳＷ−ＣＭＤ）を解釈する。また、コマンド制御回路１６は、クロック信号ＣＬＫの立ち上がりエッジに同期して、レスポンスＲＥＳをホスト機器２００に送信する。
【００６３】
さらに、コマンド制御回路１６は、スイッチコマンド（ＳＷ−ＣＭＤ）に基づいて、メモリカード１００をダブルエッジモードに設定する。また、データ制御回路１７は、ダブルエッジモードへの切り替えを受け付けた旨のステータスデータ（ＳＴＡＴＵＳ）をホスト機器２００にＤＡＴラインを使用して送信する。
【００６４】
実際にメモリカード１００がダブルエッジモードに移行してクロック信号ＣＬＫのダブルエッジに同期してデータを送受信するのは、このモード１のスイッチコマンド（ＳＷ−ＣＭＤ）に対するステータスデータをメモリカード１００がホスト機器２００に送信した後の次のコマンドからになる。以後、ホスト機器２００は、メモリカード１００に対してダブルエッジモードを実行する。
【００６５】
このようにすることで、メモリカード１００内部回路のシングルエッジモードとダブルエッジモードとの切り替えタイミングが明確になり、回路の実装が容易になる。
【００６６】
次に、ホスト機器２００の構成について説明する。図１０は、ホスト機器２００の構成を示すブロック図である。ホスト機器２００は、ホスト制御回路２０１、電源回路２０２、コネクタ２０３、及びバス２０４を備えている。
【００６７】
ホスト制御回路２０１は、メモリカード１００との間で、コマンド及びデータの転送制御を実行する。コネクタ２０３は、バス２０４を介してホスト制御回路２０１に接続されている。また、コネクタ２０３は、コネクタ１３を介してメモリカード１００と電気的に接続される。
【００６８】
電源回路２０２は、電源電圧Ｖ、接地電圧ＶＳＳ１、及び接地電圧ＶＳＳ２を生成する。これら電源電圧Ｖ、接地電圧ＶＳＳ１、及び接地電圧ＶＳＳ２はそれぞれ、コネクタ２０３を介してメモリカード１００が備えるピン４、ピン３、及びピン６に供給される。
【００６９】
このように構成されたホスト機器２００の動作を説明する。図１１は、ホスト制御回路２０１の動作を示すフローチャートである。なお、メモリカード１００は、例えば、起動時のデフォルトとしてシングルエッジモードになっているものとする。
【００７０】
先ず、ホスト制御回路２０１は、メモリカード１００がダブルエッジモードをサポートしているか否かを確認するために、モード０のスイッチコマンドＳＷ−ＣＭＤを生成し、このスイッチコマンドＳＷ−ＣＭＤをメモリカード１００に送信する（ステップＳ１１ａ）。
【００７１】
次に、ホスト制御回路２０１は、モード０のスイッチコマンドＳＷ−ＣＭＤに対するステータスデータ（ＳＴＡＴＵＳ）がメモリカード１００から送信されたか否かを監視している（ステップＳ１１ｂ）。メモリカード１００からステータスデータ（ＳＴＡＴＵＳ）を受け取ると、ホスト制御回路２０１は、このステータスデータ（ＳＴＡＴＵＳ）を用いて、メモリカード１００がダブルエッジモードをサポートしているか否かを判定する（ステップＳ１１ｃ）。
【００７２】
メモリカード１００がダブルエッジモードをサポートしていない場合、ホスト制御回路２０１は、以後メモリカード１００に対してシングルエッジモードを実行する。すなわち、ホスト制御回路２０１は、クロック信号ＣＬＫのシングルエッジに同期して、コマンドおよびデータを送受信する（ステップＳ１１ｄ）。
【００７３】
一方、メモリカード１００がダブルエッジモードをサポートしている場合、ホスト制御回路２０１は、メモリカード１００をダブルエッジモードに切り替えるために、モード１のスイッチコマンドＳＷ−ＣＭＤを生成し、このスイッチコマンドＳＷ−ＣＭＤをメモリカード１００に送信する（ステップＳ１１ｅ）。
【００７４】
次に、ホスト制御回路２０１は、モード１のスイッチコマンドＳＷ−ＣＭＤに対するステータスデータ（ＳＴＡＴＵＳ）がメモリカード１００から送信されたか否かを監視している（ステップＳ１１ｆ）。メモリカード１００からステータスデータを受け取ると、ホスト制御回路２０１は、メモリカード１００がダブルエッジモードに切り替わったことを認識し、以後メモリカード１００に対してダブルエッジモードでデータ転送を行う。すなわち、ホスト制御回路２０１は、コマンドをクロック信号ＣＬＫのシングルエッジに同期して転送し、データをクロック信号ＣＬＫのダブルエッジに同期して転送する（ステップＳ１１ｇ）。
【００７５】
以上詳述したように本実施形態によれば、クロック信号ＣＬＫの速度を上げることなく、バス上のデータ転送速度を向上させることができる。また、ダブルエッジ転送にすることにより、同じクロック周波数で２倍のデータ転送速度を得ることができる。
【００７６】
また、ダブルエッジ転送するのはデータのみで、コマンドはシングルエッジ転送するようにしている。これにより、複雑な処理が要求され、かつタイミング条件の厳しいＣＭＤラインの信号は、従来と同様の回路を使用することができ、かつ回路の実装が容易となる。この結果、製造コストを低減することができる。
【００７７】
また、メモリカードの拡張機能を設定するためのスイッチコマンドの一部に本実施形態で説明したダブルエッジモードを設定するフィールドを設けている。このため、コマンドを増やすことなくシングルエッジモードとダブルエッジモードとの切り替えを行うことができる。
【００７８】
また、ホスト機器は、メモリカードに対してシングルエッジモードとダブルエッジモードとの切り替えを行うことができる。さらに、ホスト機器は、ダブルエッジモードをサポートしているメモリカードに対して、ダブルエッジ転送を行うことができる。
【００７９】
なお、本実施形態ではＳＤメモリカードを一例として説明したが、同様のバス構造を持つ他のメモリカードやメモリデバイスにも適用可能である。
【００８０】
この発明は、上記実施形態に限定されるものではなく、その他、本発明の要旨を変更しない範囲において種々変形して実施可能である。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態に係るメモリカード１００の構成を示す概略図。
【図２】メモリカード１００の信号ピンに対する信号割り当てを示す図。
【図３】図１に示したメモリカード１００の構成を示すブロック図。
【図４】メモリカード１００の各動作モードにおける信号ピンに対する信号割り当てを示す図。
【図５】メモリカード１００のデータ書き込み動作を示すタイミングチャート。
【図６】メモリカード１００のデータ読み出し動作を示すタイミングチャート。
【図７】メモリカード１００のデータ転送及びコマンド／レスポンス転送のタイミングチャート。
【図８】スイッチコマンド（ＳＷ−ＣＭＤ）に対するステータスデータ（ＳＴＡＴＵＳ）のデータフィールドの一例を示す図。
【図９】シングルエッジモードとダブルエッジモードとの切り替え動作を示すタイミングチャート。
【図１０】図１に示したホスト機器２００の構成を示すブロック図。
【図１１】ホスト制御回路２０１の動作を示すフローチャート。
【符号の説明】
【００８２】
１００…メモリカード、２００…ホスト機器、１１…フラッシュメモリ、１２…カードコントローラ、１３，２０３…コネクタ、１４，２２，２０４…バス、１５…ホストインタフェース回路、１６…コマンド制御回路、１７…データ制御回路、１８…ＭＰＵ、１９…ＲＯＭ、２０…ＲＡＭ、２１…メモリインタフェース回路、２０１…ホスト制御回路、２０２…電源回路。
【図１】
2007011788.tif 000003
【図２】
2007011788.tif 000004
【図３】
2007011788.tif 000005
【図４】
2007011788.tif 000006
【図５】
2007011788.tif 000007
【図６】
2007011788.tif 000008
【図７】
2007011788.tif 000009
【図８】
2007011788.tif 000010
【図９】
2007011788.tif 000011
【図１０】
2007011788.tif 000012
【図１１】
2007011788.tif 000013