(57)【要約】【課題】クロック信号及びデータの伝播遅延に起因するアクセスエラーを解消することが容易なカードホスト用のデータプロセッサを提供する。【解決手段】メモリカードインタフェースコントローラ（３）は、メモリカード（１０）にクロック信号を送信して前記メモリカードからの読み出しデータを前記クロック信号に同期して取り込み、前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能である。クロック信号の半サイクルずれたタイミングで読み出しデータの取り込みタイミングを調整することができる。メモリカードインタフェースコントローラは、前記クロック信号の周波数を切り換え可能である。周波数の切り換えも併用することで更に柔軟にタイミング調整を行うことができる。【選択図】        図１
2004192488.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、クロック同期型のメモリカードに接続可能なメモリカードインタフェースコントローラとを有するデータプロセッサであって、
前記メモリカードインタフェースコントローラは、前記メモリカードにクロック信号を送信して前記メモリカードからの読み出しデータを前記クロック信号に同期して取り込み、前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であることを特徴とするデータプロセッサ。
【請求項２】
前記メモリカードインタフェースコントローラは、前記クロック信号の周波数を切り換え可能であることを特徴とする請求項２記載のデータプロセッサ。
【請求項３】
前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換えることを特徴とする請求項１又は２記載のデータプロセッサ。
【請求項４】
前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更する請求項２記載のデータプロセッサ。
【請求項５】
前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換え、切り換え後に生ずる読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更することを特徴とする請求項２記載のデータプロセッサ。
【請求項６】
前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更し、周波数変更後に生ずる読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換えることを特徴とする請求項２記載のデータプロセッサ。
【請求項７】
前記中央処理装置によりアクセス可能な第１レジスタを有し、当該第１レジスタに設定される制御データにしたがって前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが決定されることを特徴とする請求項１記載のデータプロセッサ。
【請求項８】
前記中央処理装置によりアクセス可能な第１レジスタ及び第２レジスタを有し、前記第１レジスタに設定される制御データにしたがって前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが決定され、前記第２レジスタに設定される制御データにしたがって前記クロック信号の高周波又は低周波が決定されることを特徴とする請求項２記載のデータプロセッサ。
【請求項９】
電気的に書換え可能な不揮発性メモリを有し、前記不揮発性メモリは、前記中央処理装置が実行して前記制御データを生成する制御プログラムの格納領域とされることを特徴とする請求項７又は８記載のデータプロセッサ。
【請求項１０】
前記メモリカードインタフェースコントローラは、前記メモリカードにクロック信号に同期してデータの送信を行い、データの送信を前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であることを特徴とする請求項１又は２記載のデータプロセッサ。
【請求項１１】
メモリカードホスト装置からクロック信号を受信して、読み出しデータを前記メモリカードホスト装置に送信可能なメモリカードであって、
前記読み出しデータの送信を前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であることを特徴とするメモリカード。
【請求項１２】
前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかの指示はメモリカードホスト装置から与えられることを特徴とする請求項１１記載のメモリカード。
【請求項１３】
メモリカードホスト装置からデータを前記クロック信号に同期して取り込み、前記データの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であることを特徴とする請求項１１記載のメモリカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリカード、そしてメモリカードホスト装置を構成するメモリカードインタフェースコントローラ内蔵のデータプロセッサ、特に、データ取り込みのためのクロック制御及びクロック周波数制御に関する。
【０００２】
【従来の技術】
クロック同期型のメモリカードはメモリカードホスト装置から転送クロック信号を受信し、転送クロック信号に同期して読み出しデータの出力動作を行い、メモリカードホスト装置は出力された読み出しデータを転送クロック信号に同期して取込む。この種のタイミング制御を行う技術として、データ線などを共有する各半導体メモリモジュールに対応したアクセスタイミング情報を予め格納しておき、このタイミング情報に基づいてアクセス対象半導体メモリモジュールに応じて、転送先側でのデータ取り込みタイミングを変化させたり、クロック幅を変化させたりする技術がある（特許文献１参照）。要するにこれは、メモリに供給されるクロック位相をアクセスタイミング情報に従ってソフトウェアで切り換えることにより、データリードタイミングを調整するというものである。
【０００３】
【特許文献１】
特開平０８−１２３７１７号公報
【０００４】
【発明が解決しようとする課題】
本発明者はクロック同期型のメモリカード及びメモリカードホスト装置におけるクロック同期動作について検討した。ある種のメモリカードではクロック信号の立ち上りに同期してリードデータを出力する。別のメモリカードではクロック信号の立ち下がりに同期してリードデータを出力する。メモリカードホスト装置もリードデータの取込みをクロックの立ち上り同期で行うものも有れば立ち下がり同期で行うものもある。メモリカードホスト装置とメモリカードとの間のクロック信号やリードデータの伝播には遅延が有るから、特定のメモリカードとカードホストとの組み合わせでは正常なデータリード動作を保証できない場合のあることが明らかにされた。そのような遅延に対する動作余裕はクロック信号周波数が高くなるほど厳しくなる。
【０００５】
本発明の目的は、クロック信号及びデータの伝播遅延に起因するアクセスエラーを解消することが容易なメモリカードホスト装置用のデータプロセッサを提供することにある。
【０００６】
本発明の別の目的は、クロック信号及びデータの伝播遅延に起因するアクセスエラーを解消することが容易なメモリカードを提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【０００８】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
〔１〕《メモリカードホスト装置用のデータプロセッサ》本発明に係るデータプロセッサは、中央処理装置と、クロック同期型のメモリカードに接続可能なメモリカードインタフェースコントローラとを有する。前記メモリカードインタフェースコントローラは、前記メモリカードにクロック信号を送信して前記メモリカードからの読み出しデータを前記クロック信号に同期して取り込み、前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能である。クロック信号の半サイクルずれたタイミングで読み出しデータの取り込みタイミングを調整することができる。
【００１０】
また、前記メモリカードインタフェースコントローラは、前記クロック信号の周波数を切り換え可能である。周波数の切り換えも併用することで更に柔軟にタイミング調整を行うことができる。
【００１１】
タイミング調整の方法として、例えば、前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換える。また、前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更する。また、前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換え、切り換え後に生ずる読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更する。また、前記中央処理装置は読み出しデータのリードエラーに応答してクロック信号を高周波から低周波に変更し、周波数変更後に生ずる読み出しデータのリードエラーに応答してクロック信号の立ち上り同期による取り込みと立ち下がり同期による取込みとを切り換える。
【００１２】
タイミング調整には前記中央処理装置によりアクセス可能な第１レジスタ及び第２レジスタを利用してよい。当該第１レジスタに設定される制御データにしたがって前記読み出しデータの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが決定される。前記第２レジスタに設定される制御データにしたがって前記クロック信号の高周波又は低周波が決定される。
【００１３】
前記第１レジスタ及び第２レジスタに対する操作はソフトウェア処理で行ってよい。すなわち、電気的に書換え可能な不揮発性メモリを有し、前記不揮発性メモリは、前記中央処理装置が実行して前記制御データを生成する制御プログラムの格納領域とされる。
【００１４】
前記メモリカードインタフェースコントローラは、前記メモリカードにクロック信号に同期してデータの送信を行い、データの送信を前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかを選択可能にしてもよい。
【００１５】
〔２〕《メモリカード》本発明に係るメモリカードは、メモリカードホスト装置からクロック信号を受信して、読み出しデータを前記メモリカードホスト装置に送信可能であって、前記読み出しデータの送信を前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能である。メモリカード側に対する操作でメモリカードホスト装置による読み出しデータの取り込みタイミングが調整可能になる。メモリカードホスト装置はタイミング調整のためにハードウェアを持たなくてもよい。
【００１６】
前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかの指示はメモリカードホスト装置から与えられることになる。
【００１７】
メモリカードホスト装置からデータを前記クロック信号に同期して取り込み、前記データの取り込みを前記クロック信号の立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であってもよい。
【００１８】
【発明の実施の形態】
図１には本発明に係るデータプロセッサ１の一例が示される。同図に示されるデータプロセッサ１は、例えばＣＭＯＳ集積回路製造技術により単結晶シリコンのような１個の半導体基板（半導体チップ）に形成される。
【００１９】
データプロセッサ１は、代表的に示された中央処理装置（ＣＰＵ）２と、前記ＣＰＵ２によって制御されるメモリカードインタフェースコントローラ（ＭＣＩＦＣ）３と、外部インタフェース回路（外部ＩＦ）４とを有する。前記ＣＰＵ２とＭＣＩＦＣ３はバス５で接続され、また、このバス５には電気的に消去及び書き込み可能な不揮発メモリ例えばフラッシュメモリ６及びＣＰＵ２のワーク領域とされるＲＡＭ（ランダム・アクセス・メモリ）７等が接続される。
【００２０】
前記ＭＣＩＦＣ３は、例えばメモリカードとしてＭＭＣ若しくはマルチメディアカード（登録商標、以下単にＭカードとも記す）に接続されて、転送クロック信号ＭＣＣＬＫに同期してそのインタフェース制御を行う。その詳細は後述するが、前記ＭＣＩＦＣ３は、前記転送クロック信号ＭＣＣＬＫに同期する前記Ｍカード１０からの読み出しデータの取り込みを前記転送クロック信号ＭＣＣＬＫの立ち上り同期で行なうか立ち下がり同期で行うかが選択可能であり、且つ、前記転送クロック信号ＭＣＣＬＫの周波数を切り換え可能である。ＭＣＩＦＣ３は、信号インタフェース部１１、取り込みタイミングの切換え回路１２、周波数制御回路１３、制御レジスタ１４、制御レジスタ１５、及びデータ送受信制御回路１６によって構成される。
【００２１】
前記信号インタフェース部１１はＭカード１０に接続される。ここでＭカード１０に関するコマンド、端子機能、カードサイズなどの基本仕様はＭＭＣアソシエーションによって既に策定されてる。この仕様によれば、Ｍカード１０は第１乃至第７外部端子を有し、ＭＭＣモードとＳＰＩ（Serial Peripheral Interface）モードを有する。Ｍカード１０はバスを共有することができる。要するに、Ｍカード１０は一つのメモリカードホスト装置に対して多数接続可能にされる。データプロセッサ１はメモリカードホスト装置に利用されることになる。ＭＭＣモードとＳＰＩモードとの相違は外部とのインタフェース仕様と、Ｍカードの選択手法である。
【００２２】
前記外部インタフェース仕様という点において、ＭＭＣモードでは、第１外部端子Ｐ１はリザーブ端子（オープン又は論理値“１”に固定）ＮＣ、第２外部端子Ｐ２はコマンド端子（コマンド入力及び応答信号出力を行う）ＣＭＤ、第３及び第６外部端子は回路の接地電圧（グランド）端子Ｖｓｓ１，Ｖｓｓ２、第４外部端子Ｐ４は電源電圧供給端子Ｖｃｃ、第５外部端子Ｐ５はクロック入力端子ＣＬＫ、第７外部端子Ｐ７はデータの入出力端子ＤＡＴとして機能される。図２にはＭＭＣモードにおけるＭＣＩＦＣ３とＭカード１０の信号インタフェースの様子が示される。ＭＣＣＬＫは転送クロック信号、ＭＣＣＭＤはＭＣＩＦＣ３からＭカード１０へのコマンド送信信号及びＭカード１０からＭＣＩＦＣ３へのレスポンス信号、ＭＣＤＡＴはＭＣＩＦＣ３からＭカード１０へのデータ信号及びＭカード１０からＭＣＩＦＣ３へのデータ信号である。
【００２３】
ＳＰＩモードでは、第１外部端子Ｐ１はチップセレクト端子（負論理）ＣＳ、第２外部端子Ｐ２はデータ入力端子（カードホストからＭカード１０へのデータ及びコマンド入力用）ＤＩ、第３及び第６外部端子Ｐ３，Ｐ４は回路の接地電圧（グランド）端子Ｖｓｓ１，Ｖｓｓ２、図示しない第４外部端子Ｐ４は電源電圧供給端子Ｖｃｃ、第５外部端子Ｐ５はクロック入力端子ＣＬＫ、第７外部端子Ｐ７はデータ出力端子（Ｍカード１０からカードホストへのデータ及びステータス出力）ＤＯとして機能される。図３にはＳＰＩモードにおけるＭＣＩＦＣ３とＭカード１０の信号インタフェースの様子が示される。ＭＣＣＬＫは転送クロック信号、ＭＣＴｘＤはＭＣＩＦＣ３からＭカード１０へのコマンド送信及びデータ送信信号、ＭＣＲｘＤはＭカード１０からＭＣＩＦＣ３へのコマンドレスポンス信号及びデータ受信信号、ＭＣＣＳはＭＣＩＦＣ３からＭカード１０へのチップ選択信号である。
【００２４】
前記Ｍカード１０の選択手法という点において、ＭＭＣモードは複数枚のメモリカードの中からアクセスするカードを選択するのに、カード認識フローの中で夫々のカードに固有の相対アドレス（ＲＣＡ：Relative Card Address）を一枚一枚に割り振っておき、この相対アドレスを指定することでカードを選択する。カード認識は以下の動作で行われる。バスに共通接続された複数のＭカードにＭＭＣモードが指定されているとき、Ｍカードのメモリカードホスト装置（単にＭカードホストとも記す）からコマンドライン（コマンド端子ＣＭＤが接続する信号線）に所定のコマンドが発行されると、レディー状態のＭカードは同じタイミングで一斉にカード識別情報（ＣＩＤ：Card Identification Number）を１ビットずつコマンドラインに出力する。コマンドラインはオープンドレインアーキテクチャとなっており、コマンドラインに対する出力は例えばローレベル又は高出力インピーダンスになる。夫々のＭカードは１ビット出力毎にコマンドラインの状態と自分自身のカード識別情報の対応ビットの値とを比較し、異なる場合はそこでＣＩＤの送信動作を中止してレディ状態に戻る。この結果、最終的にはＣＩＤ値の一番小さな一枚のメモリカードが最後まで自身のＣＩＤ値の送信を完了させることができ、アイデンティフィケーション状態に遷移する。アイデンティフィケーション状態に遷移したメモリカードに対してＲＣＡを設定する。この認識操作を何回も繰返して全てのメモリカードにＲＣＡを設定する。
【００２５】
ＳＰＩモードでは、複数枚のカード夫々に対してチップセレクト信号ＭＣＣＳが前記チップ選択端子ＣＳに接続してあり、アクセスしたいカードのチップセレクト信号ＭＣＣＳを選択レベルにアサートしてＭカード１０を選択すればよい。
【００２６】
Ｍカード１０に対するモード設定はＭＣＩＦＣ３によるカード認識処理において端子Ｐ１に所定タイミングで供給する信号ＭＣＣＳがローレベルであればＭカード１０はＳＰＩモードに設定され、ハイレベルであればＭＭＣモードに設定される。
【００２７】
前記信号インタフェース部１１は、クロックバッファ２０、入力バッファ２１，２３、出力バッファ２２、２４、及びセレクタ２５，２６を有し、Ｍカード１０の端子Ｐ５，Ｐ２，Ｐ７，Ｐ１に接続される。前記セレクタ２５，２６に対する入力選択制御及び入力バッファ２１，２３と出力バッファ２２，２４に対する動作制御はデータ送受信制御回路１６がＭカード１０に設定した動作モード及び入出力動作に応じて行う。Ｍカード１０にＭＭＣモードが設定されたとき、コマンド出力には出力バッファ２２が用いられ、コマンドレスポンス入力には入力バッファ２１が用いられ、セレクタ２５は入力バッファ２１の出力を選択する。また、データ出力には出力バッファ２４が用いられ、データ入力には入力バッファ２３が用いられ、セレクタ２６は入力バッファ２３の出力を選択する。Ｍカード１０にＳＰＩモードが設定されたとき、コマンド出力及びデータ出力には出力バッファ２２が用いられ、コマンドレスポンス入力及びデータ入力には入力バッファ２３が用いられ、コマンドレスポンス入力はセレクタ２５経由で後段に伝達され、データ入力はセレクタ２６経由で後段に伝達される。
【００２８】
取り込みタイミングの切換え回路１２は、セレクタ２５の出力段にラッチ回路（ＦＦ）３０、３１とセレクタ３２を有し、セレクタ２６の出力段にラッチ回路（ＦＦ）３３、３４とセレクタ３５を有する。ラッチ回路３０，３３は前記転送クロック信号ＭＣＣＬＫの立ち上りに同期して入力をラッチする。前記ラッチ回路３１，３４は前記転送クロック信号ＭＣＣＬＫの立ち下がりに同期して入力をラッチする。セレクタ３２は前記ラッチ回路３０又はラッチ回路３１の出力を選択する。セレクタ３５は前記ラッチ回路３３又はラッチ回路３４の出力を選択する。セレクタ３２，３５による選択動作は制御レジスタ１５に設定される制御データＤ１の論理値で決まる。前記制御レジスタ１５の制御データＤ１が論理値“１”のときは、ラッチ回路３０、３３の出力が選択され、これにより、データ送受信制御回路１６は、転送クロック信号ＭＣＣＬＫの立ち上がりに同期して、セレクタ２５から出力されるコマンドレスポンスを認識し、また、セレクタ２６から出力される受信データ（Ｍカードからのリードデータ）を認識することができる。一方、レジスタ１５の制御データＤ１が論理値“０”のときは、ラッチ回路３１、３４の出力が選択され、これにより、データ送受信制御回路１６は、転送クロック信号ＭＣＣＬＫの立ち下がりに同期して、セレクタ２５から出力されるコマンドレスポンスを認識し、また、セレクタ２６から出力される受信データ（Ｍカードからのリードデータ）を認識することができる。
【００２９】
周波数制御回路１３はシステムクロック信号ＣＬＫに基いて転送クロック信号ＭＣＣＬＫを生成する。周波数制御回路１３は制御レジスタ１４に設定される制御データＤ２に従って転送クロック信号ＭＣＣＬＫの周波数を制御する。例えば制御データＤ２が論理値“１”のとき転送クロック信号ＭＣＣＬＫの周波数は２０メガヘルツ（ＭＨｚ）のように相対的に高い周波数（高周波）とされ、制御データＤ２が論理値“０”のとき転送クロック信号ＭＣＣＬＫの周波数は１５メガヘルツ（ＭＨｚ）のように相対的に低い周波数（低周波）とされる。
【００３０】
データ送受信制御回路１６はＣＰＵ２からのセットアップコマンドなどに応答してＭカード１０の認識及びモード設定を行い、ＣＰＵ２からのアクセスコマンドに応答してＭカード１０に対するアクセス制御を行う。ＭＣＩＦＣ３は、Ｍカード１０からのリードデータをバス５に出力し、Ｍカード１０へのライトデータをバス５から入力する。
【００３１】
前記制御レジスタ１４，１５はＣＰＵ２のアドレス空間に配置され、ＣＰＵ２による制御プログラムの実行により制御データＤ１，Ｄ２の設定が行われる。
【００３２】
図４にはＳＰＩモードのＭカード１０に対するリードアクセスの動作タイミングが例示される。ここではクロック信号ＭＣＣＬＫの周波数を２０ＭＨｚとする。転送クロック信号ＭＣＣＬＫは、送信基端側のノード（Ａ）に対して受信端ではクロック伝播遅延を生ずる。Ｍカード１０は例えば転送クロック信号ＭＣＣＬＫの立ち下がりに同期してノード（Ｃ）からバスにリードデータＭＣＲｘＤを出力する。この出力までにはデータ出力遅延を生じ、更にバス上でのデータ伝播遅延を生じ、ＭＣＩＦＣ３の入力ノード（Ｄ）到達する。図４の例ではＭＣＩＦＣ３の入力ノード（Ｄ）にリードデータが到達するタイミングは、ノード（Ａ）における転送クロック信号ＭＣＣＬＫ波形の立ち上りエッジの近傍とされる。この状態で、ＭＣＩＦＣ３がリードデータを転送クロック信号ＭＣＣＬＫの立ち上り同期で取り込むと（時刻ｔｍ）、リードデータは未だ不確定な状態でラッチ回路にラッチされてデータエラーを生ずる虞がある。このとき、ＭＣＩＦＣ３はリードデータを転送クロック信号ＭＣＣＬＫの立ち下がり同期で取り込めば（時刻ｔｎ）、確定後のリードデータをラッチ回路にラッチすることができる。ラッチタイミングの変更はクロック信号ＭＣＣＬＫの周波数変更によっても同様に達成することができる。周波数の変更は必ずしも高周波から低周波への変更に限定されず逆であってもよい。
【００３３】
図５には前記制御データの設定態様が例示される。制御データの変更方法はＣＰＵ２の制御プログラムにしたがって自動的に行ってもよいし、システム上でユーザが任意に行なってもよい。そのような制御プログラムは外部ＩＦ４を介してフラッシュメモリ６の所定のプログラム領域に格納されていればよい。フラッシュメモリ６に対するプログラムの格納はデータプロセッサ１がシステムに実装された状態（オン・ボードの状態）でも可能である。
【００３４】
任意変更の処理は、システム上でデータエラーが発生する状態をユーザ（システムの使用者）が認識することにより、任意に制御レジスタ１４，１５の値を設定変更する処理とされる。図５では変更形態（１）、（３）がそれに該当する。
【００３５】
プログラムによる自動変更の処理は、例えばＭカード１０からのリードデータに対するリードエラーの発生を一つの割り込み要因とし、これによる割り込み処理でＣＰＵ２に制御レジスタ１４，１５の値を設定変更させる処理である。リードエラーの発生は例えばリードデータに付加されるＣＲＣ（サイクル・リダンダンシ・チェック）コード等を用いて行なえばよい。変更形態（２）では高周波から低周波に変更する。変更形態（４）では取り込みエッジを立ち上りから立ち下がりに変化させる。変更形態（５）では、最初のデータエラーで取り込みエッジを立ち上りから立ち下がりに変化させ、次のデータエラーで転送クロック信号ＭＣＣＬＫの周波数を高周波を低周波に変更し、更にデータエラーが有った場合には取り込みエッジを立ち下がりから立ち上がりに変化させる。変更形態（６）は、最初のデータエラーで転送クロック信号ＭＣＣＬＫの周波数を高周波から低周波に変更し、次のデータエラーで取り込みエッジを立ち上りから立ち下がりに変化させる。変更形態（７）は、最初のデータエラーで転送クロック信号ＭＣＣＬＫの周波数を低周波から高周波に変更し、次のデータエラーで取り込みエッジを立ち上りから立ち下がりに変化させる。変更形態（８）は、最初のデータエラーで取り込みエッジを立ち上りから立ち下がりに変化させ、次のデータエラーで転送クロック信号ＭＣＣＬＫの周波数を低周波から高周波に変更し、更にデータエラーが有った場合には取り込みエッジを立ち下がりから立ち上がりに変化させる。
【００３６】
尚、何回目のデータエラーであるかはデータ転送制御回路１６がその回数を計数するカウンタ手段若しくはフラグ手段を有することによって把握すればよい。また、一旦設定した制御データはＭカードが取り外されない限りメモリカードホスト装置のスリープもしくはスタンバイ状態においても保持されるのが望ましい。動作電源が遮断され、或はＭカードが交換されたときは、制御レジスタ１４，１５は初期化される。リードデータの出力タイミングが転送クロック信号の立ち上り同期であるのか立ち下がり同期であるのかはＭカードの種類に応じて異なるからである。
【００３７】
図６には別のＭＣＩＦＢ３Ａの例が概略的に示される。ここでは、受信信号の取り込みタイミングの切り換え回路１２の他に、送信信号の送信タイミングに対する切り換え回路４３を採用する。前記切り換え回路４３は、例えば出力バッファ２２の前段に、ラッチ回路４１，４２及びセレクタ４０を配置して構成される。ラッチ回路４１は送信クロック信号ＭＣＣＬＫの立ち上り同期で送信データをラッチする。ラッチ回路４２は送信クロック信号ＭＣＣＬＫの立ち下がり同期で送信データをラッチする。セレクタ４０は制御レジスタ４４に設定される制御データＤ３の論理値に従ってラッチ回路４１の出力又はラッチ回路４２の出力を選択する。これにより、Ｍカード１０によるデータ取り込みにデータエラーを生ずるような場合にも制御データＤ３の設定で対処可能になる。尚、図６において図１の一部の構成は図示が省略されている。
【００３８】
図７には別のタイミングの切り換え回路１２Aが例示される。ここでは周波数制御回路１３はシステムクロック信号ＣＬＫを２分周して転送クロック信号ＭＣＣＬＫを生成する。ラッチ回路３０，３１にはクロック制御回路５０で生成されたクロック信号ＬＣＬＫが供給される。クロック制御回路５０は制御レジスタ５１に設定さた制御データＤ４が論理値“１”のとき転送クロック信号ＭＣＣＬＫの位相を１８０°進めたクロック信号ＬＣＬＫを出力し、制御データＤ４が論理値“０”のとき転送クロック信号ＭＣＣＬＫの位相を２７０°進めたクロック信号ＬＣＬＫを出力する。ラッチ回路３０はクロック信号ＬＣＬＫの立ち上り同期でリードデータを取り込み、ラッチ回路３１はクロック信号ＬＣＬＫの立ち下がり同期でリードデータを取り込む。セレクタ３２がラッチ回路３０又は３１の出力を選択する。
【００３９】
図８には図７のタイミング切り換え回路１２Aを用いたときの動作タイミングが例示される。Ｄ４＝１で立ち上り同期（Ｄ１＝１）を選択すればコマンドレスポンスの取り込みタイミングは時刻ｔ１、Ｄ４＝１で立ち下がり同期（Ｄ１＝０）を選択すればコマンドレスポンスの取り込みタイミングは時刻ｔ３、Ｄ４＝０で立ち上り同期（Ｄ１＝１）を選択すればコマンドレスポンスの取り込みタイミングは時刻ｔ２、Ｄ４＝０で立ち下がり同期（Ｄ１＝０）を選択すればコマンドレスポンスの取り込みタイミングは時刻ｔ４となる。これにより、取り込みタイミングの選択の余地が更に拡大する。特に図示はしないが、データＭＣＤＡＴ／ＭＣＲｘＤについても同様の構成を採用可能である。
【００４０】
図９には本発明に係るメモリカードの一例としてＭカード６１が示される。Ｍカード６１の外部インタフェース機能及びコマンド応答機能は基本的に前記Ｍカード１０と同じである。先ずMカード６１の基本構成を説明する。Ｍカード６１は、厚さが１．４ｍｍ、平面寸法が２４ｍｍ×３２ｍｍのカード基板サイズを有し、その端子面には、外部端子Ｐ０〜Ｐ６が等間隔で７個配置される。外部端子Ｐ０〜Ｐ６はインタフェース部６２に接続され、インタフェース部６２には消去及び書き込み可能な不揮発性メモリとしてフラッシュメモリ６３が接続される。
【００４１】
フラッシュメモリ６３の詳細は特に図示はしないが、蓄積電荷量もしくは極性に従って閾値電圧制御されるフローティングゲート型の不揮発性メモリセルを用いた構成、或はソース・ドレイン電極に対して電荷をトラップする位置に応じて情報記憶を行なうＭＯＮＯＳ（メタル・オキサイド・ナイトライド・オキサイド・セミコンダクタ）等の局在的電荷トラップ型の不揮発性メモリセルを用いた構成を採用することができる。メモリセル１個当りの記憶情報ビット数は２ビットに限定されず、４ビット等の多値であってもよい。
【００４２】
インタフェース部６２は、Ｍカード６１のホストインタフェース制御部６４、フラッシュメモリインタフェース制御部６５、バッファメモリ６６、それらを制御する制御部６７を有する。制御部６７は例えばシングルチップマイクロコンピュータによって構成することができる。ホストインタフェース制御部６４と外部端子Ｐ０〜Ｐ６との間には、その端子機能にしたがって入力バッファＩＢＵＦ１〜ＩＢＵＦ４、出力バッファＯＢＵＦ１，ＯＢＵＦ２が配置される。入力バッファＩＢＵＦ３、ＩＢＵＦ２の後段には信号取り込みタイミングの切り換え回路７０，７１が設けられ、出力バッファＯＢＵＦ１，ＯＢＵＦ２の前段には送信タイミングの切り換え回路７２，７３が配置される。Ｍカード６１は前述の通りであり、ＭＭＣモードとＳＰＩモードを有する。
【００４３】
図１０には信号取り込みタイミングの切り換え回路７０と送信タイミングの切り換え回路７３が例示される。取り込みタイミングの切り換え回路７０は、ラッチ回路７５，７６とセレクタ７７によって構成され、入力データＭＣＴｘＤをクロック信号ＭＣＣＬＫの立ち上り同期又は立ち下がり同期で取り込むことができる。何れを選択するかは制御レジスタ７８の制御データＤ５によって決定することができる。送信タイミングの切り換え回路７３は、ラッチ回路８０，８１とセレクタ８２によって構成され、出力データＭＣＲｘＤをクロック信号ＭＣＣＬＫの立ち上り同期又は立ち下がり同期で取り込むことができる。何れを選択するかは制御レジスタ８３の制御データＤ６によって決定することができる。図示は省略するが、他の切り換え回路７１、７２も同様に構成される。
【００４４】
制御レジスタ７８，８３に対する制御データＤ５，Ｄ６の設定はメモリカードホスト装置が行う。要するに、制御レジスタ７８，８３はＭカード６１のその他の制御レジスタと同様に外部から与えられるレジスタアクセスコマンドにしたがってアクセスされて制御情報の設定が可能にされる。
【００４５】
上記Ｍカード６１によれば、データエラーに対する取込みタイミングや送信タイミングを調整するための構成をＭカード６１に負担させることが可能になる。メモリカードホスト装置はデータエラーの検出とそれに基く制御データの設定を行う制御プログラムを持てばよい。
【００４６】
図１１には前記データプロセッサ１の詳細を全体的に示してある。図１１においてデータプロセッサ１は、中央処理装置（ＣＰＵ）２、データトランスファコントローラ（ＤＴＣ）９０、リードオンリメモリ（ＲＯＭ）９１、ＣＰＵ２の作業領域並びにデータの一時記憶に利用されるランダムアクセスメモリ（ＲＡＭ）９２、ＣＰＵ２の制御プログラムなどを格納するフラッシュメモリ６、バスコントローラ９３、クロック発生回路（ＣＰＧ）９４、割込みコントローラ９５、タイマカウンタ（ＴＭＲ）９６、シリアルコミュニケーションインタフェースコントローラ（ＳＣＩ）９７、ユニバーサルシリアルバスコントローラ（ＵＳＢ）９８、ＭＣＩＦＣ３、パルスワイズモジュレータ（ＰＷＭ）９９、ウォッチドッグタイマ（ＷＤＴ）１００、フリーランニングタイマ（ＦＲＴ）１０１、及び入出力ポート１０２〜１０４を有する。前記ＣＰＵ２、ＤＴＣ９０、ＲＯＭ９１、ＲＡＭ９２及びバスコントローラ９３はＣＰＵバス１０６に接続される。このＣＰＵバス１０６はバスコントローラ９３を介して周辺バス１０７にインタフェースされ、周辺バス１０７には、周辺回路として、前記割込みコントローラ９５、ＴＭＲ９６、ＳＣＩ９７、ＵＳＢ９８、ＭＣＩＦＣ３、ＰＷＭ９９、及びＷＤＴ１００が接続される。前記ＣＰＵバス１０６及び周辺バス１０７は夫々、データバス、アドレスバス及び制御信号バスを含んでおり、前記バス５に対応される。前記周辺バス１０７は入出力ポート１０２を介して外部バス（図示せず）とインタフェースされ、ＣＰＵバス１０６はバスコントローラ９３を介して周辺バス１０７、更には入出力ポート１０２を介して外部バスとインタフェースされる。入出力ポート１０３，１０４は周辺回路のための外部インタフェースバッファとして機能される。
【００４７】
データプロセッサ１においてバスマスタモジュールは、前記ＣＰＵ２及びＤＴＣ９０である。前記ＣＰＵ２は、例えばＲＯＭ９１又はフラッシュメモリ６から命令をフェッチし、取り込んだ命令を解読する命令制御部と、命令制御部による命令解読結果に従って汎用レジスタや算術論理演算器などを用いて演算処理を行なう実行部とを有する。ＤＴＣ９０のデータ転送制御条件は予めＣＰＵ２によりＲＡＭ９２に設定され、ＦＲＴ１０１がデータ転送要求を発すると、対応するデータ転送制御条件がＲＡＭ９２からＤＴＣ９０にロードされ、ＤＴＣ９０はロードされた転送制御条件に従ったデータ転送制御を行う。
【００４８】
バスコントローラ９３は、バスマスタモジュールであるＣＰＵ２、ＤＴＣ９０、及び外部バスマスタとの間のバス権要求の競合に対する調停を行う。調停論理は例えば優先順位に基づく調停制御である。調停の結果、バス権が与えられたバスマスタモジュールは、バスコマンドを出力し、バスコントローラ９３は、このバスコマンドに基づいてバスの制御を行なう。バスコントローラ９３は、バスマスタモジュールの出力するアドレス信号がデータプロセッサ１の外部アドレス空間を意味する場合には、入出力ポート１０２を介して外部にアドレス信号及びアクセスストローブ信号を出力する。
【００４９】
割り込みコントローラ９５には、周辺バス１０７に接続されたＦＲＴ１０１などの周辺回路から出力される内部割込み信号や入出力ポート１０４を介して外部から入力される外部割込み信号が供給される。前記内部割込み信号及び外部割込み信号は１１０で総称される。割込みコントローラ９５は、入力された割込み信号に対して優先制御及びマスク制御を行って、割り込み要求を受け付ける。割込みコントローラ９５は、割込みを受付けると、その割込み要求信号の種類などに応じて、ＣＰＵ２に割込み要求信号ＩＲＱを出力し、或いはＤＴＣ９０にＤＴＣ起動要求信号ＤＴＲＱを出力する。
【００５０】
ＣＰＵ２に割込要求信号ＩＲＱが与えられると、ＣＰＵ２は実行中の処理を中断して、割込み要因に応じた所定の処理ルーチンに分岐する。分岐先の処理ルーチンの最後では、復帰命令が実行され、この命令を実行することによって前記中断した処理が再開可能にされる。
【００５１】
その他、データプロセッサ１は電源端子として、グランドレベル（ＶＳＳ）及び電源電圧レベル（ＶＣＣ）などの外部端子を有し、その他に専用制御端子として、リセット入力（ＲＥＳ）、スタンバイ入力（ＳＴＢＹ）、モード制御入力（ＭＤ０、ＭＤ１）、クロック入力（ＥＸＴＡＬ、ＸＴＡＬ）の各端子を有する。
【００５２】
前記ＣＰＧ９４は、特に制限されないが、端子ＥＸＴＡＬ、ＸＴＡＬに接続される水晶発振子またはＥＸＴＡＬ端子に入力される外部クロック信号に基づいてシステムクロック信号ＣＬＫを生成する。
【００５３】
データプロセッサ１にリセット信号ＲＥＳが与えられると、ＣＰＵ２等のオンチップ回路モジュールはリセット状態とされる。このリセット信号ＲＥＳによるリセット状態が解除されると、ＣＰＵ２は所定のスタートアドレスから命令をリードし、プログラムの実行を開始し、それに従って、例えば、ＲＡＭ９２からデータをフェッチし、フェッチしたデータの演算処理を行い、処理結果に基づいて、ＭＣＩＦＣ３などを使用して、外部と信号入出力を行って、各種の機器制御を行う。
【００５４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５５】
例えば、メモリカードはＭカードに限定されず、その他の規格のメモリカードであってもよい。また、周波数の切り換えは低周波と高周波の２段階切り換えに限定されず更に細かく切り換えるようにしてもよい。データプロセッサが保有する回路モジュールは上記説明に限定されず適宜変更可能である。
【００５６】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５７】
すなわち、信号の取り込みタイミングや送信タイミングに対するクロック信号の立ち上り同期又は立ち下がり同期を切り換え可能であり、また、クロック信号の周波数を切り換え可能であるから、クロック信号及びデータの伝播遅延に起因するアクセスエラーを容易に解消することができる。
【図面の簡単な説明】
【図１】本発明に係るデータプロセッサの一例を示すブロック図である。
【図２】ＭＭＣモードにおけるＭＣＩＦＣとＭカードとの信号インタフェースの様子を示す説明図である。
【図３】ＳＰＩモードにおけるＭＣＩＦＣとＭカードとの信号インタフェースの様子を示す説明図である。
【図４】ＳＰＩモードのＭカードに対するリードアクセスの動作タイミングを例示するタイミングチャートである。
【図５】制御データの設定態様を例示する説明図である。
【図６】別のＭＣＩＦＢの例を概略的に示すブロック図である。
【図７】別のタイミングの切り換え回路を例示する回路図である。
【図８】図７のタイミングの切り換え回路を用いたときの動作タイミングを例示するタイミングチャートである。
【図９】本発明に係るメモリカードの一例を示すブロック図である。
【図１０】図９のメモリカードにおける信号取り込みタイミングの切り換え回路と送信タイミングの切り換え回路を例示する回路図である。
【図１１】データプロセッサの詳細を全体的に示すブロック図である。
【符号の説明】
１  データプロセッサ
２  ＣＰＵ
３、３Ａ  メモリカードインタフェースコントローラ
６  フラッシュメモリ
１０  メモリカード（Ｍカード）
１１  信号インタフェース部
１２，１２Ａ  取り込みタイミングの切り換え回路
１３  周波数制御回路
１４，１５  制御レジスタ
Ｄ１，Ｄ２  制御データ
３０，３１，３３，３４  ラッチ回路
３２，３５  セレクタ
４０  セレクタ
４１，４２  ラッチ回路
４３  送信タイミングの切り換え回路
５０  クロック制御回路
５１  制御レジスタ
Ｄ４  制御データ
６０  メモリカード（Ｍカード）
７０，７１  信号取り込みタイミングの切り換え回路
７２，７３  送信タイミングの切り換え回路
７８，８３  制御レジスタ
Ｄ５，Ｄ６  制御データ
【図１】
2004192488.tif 000003
【図２】
2004192488.tif 000004
【図３】
2004192488.tif 000005
【図４】
2004192488.tif 000006
【図５】
2004192488.tif 000007
【図６】
2004192488.tif 000008
【図７】
2004192488.tif 000009
【図８】
2004192488.tif 000010
【図９】
2004192488.tif 000011
【図１０】
2004192488.tif 000012
【図１１】
2004192488.tif 000013