(57)【要約】【課題】データ転送途中のアボート処理を確実に終了させる記憶デバイスコントローラ、情報処理装置及び電子機器を提供する。【解決手段】記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラは、前記記憶デバイスに対してライトデータを書き込むためのライトコマンド、又は前記ライトコマンドによるライト動作のアボートを指示するアボートコマンドを発行するコマンド発行制御部と、前記ライト動作中に前記アボートコマンドのエンドビットを検出するコマンドエンドビット検出部と、前記アボートコマンドのエンドビットの検出後の第１のビジー検出開始期間の経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部とを含み、前記ビジー検出部により非ビジー状態が検出されたときに、前記アボートコマンドによるアボート処理の終了を通知する。【選択図】図３
2010015429.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してライトデータを書き込むためのライトコマンド、又は前記ライトコマンドによるライト動作のアボートを指示するアボートコマンドを発行するコマンド発行制御部と、
前記ライト動作中に前記アボートコマンドのエンドビットを検出するコマンドエンドビット検出部と、
前記アボートコマンドのエンドビットの検出後の第１のビジー検出開始期間の経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記アボートコマンドによるアボート処理の終了を通知することを特徴とする記憶デバイスコントローラ。
【請求項２】
請求項１において、
前記第１のビジー検出開始期間が、
前記アボートコマンドのエンドビットを基準に前記アボートコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知が開始されるまでの第２の期間とを合計した期間より長いことを特徴とする記憶デバイスコントローラ。
【請求項３】
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してライトデータを書き込むためのライトコマンド、又は前記ライトコマンドによるライト動作のアボートを指示するためのアボートコマンドを発行するコマンド発行制御部と、
前記ライト動作中に、前記アボートコマンドに対応する前記記憶デバイスからのレスポンスのエンドビットを検出するレスポンスエンドビット検出部と、
前記レスポンスのエンドビットが検出されたとき、又は所定のタイムアウト期間が経過したとき、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記アボートコマンドによるアボート処理の終了を通知することを特徴とする記憶デバイスコントローラ。
【請求項４】
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してリードデータを読み出すためのリードコマンド、又は前記リードコマンドによるリード動作のアボートを指示するためのアボートコマンドを発行するコマンド発行制御部と、
前記リード動作中に、前記アボートコマンドに対応する前記記憶デバイスからのレスポンスのエンドビットを検出するレスポンスエンドビット検出部と、
を含み、
前記レスポンスエンドビット検出部により前記レスポンスのエンドビットが検出されたときに、前記アボートコマンドによるアボート処理の終了を通知することを特徴とする記憶デバイスコントローラ。
【請求項５】
請求項３又は４において、更に、
前記ライト動作中又は前記リード動作中に、前記アボートコマンドのエンドビットを検出するコマンドエンドビット検出部を含み、
前記レスポンスエンドビット検出部が、
前記コマンドエンドビット検出部により前記アボートコマンドのエンドビットが検出された後に、前記レスポンスのエンドビットの検出を開始することを特徴とする記憶デバイスコントローラ。
【請求項６】
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対するライト動作のアボートを指示するアボートコマンドタイプのコマンドの発行指示を検出するコマンド発行指示検出部と、
前記コマンドの発行指示の検出後の第２のビジー検出開始期間経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記コマンドによるアボート処理の終了を通知することを特徴とする記憶デバイスコントローラ。
【請求項７】
請求項６において、
前記第２のビジー検出開始期間が、
前記コマンドのエンドビットを基準に前記コマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知を開始されるまでの第２の期間と、前記コマンドの転送に要する第３の期間とを合計した期間より長いことを特徴とする記憶デバイスコントローラ。
【請求項８】
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスからのリード動作のアボートを指示するアボートコマンドタイプのコマンドの発行指示を検出するコマンド発行指示検出部と、
前記コマンドの発行指示の検出後の第３のビジー検出開始期間経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記コマンドによるアボート処理の終了を通知することを特徴とする記憶デバイスコントローラ。
【請求項９】
請求項８において、
前記第３のビジー検出開始期間が、
ライトコマンドのエンドビットを基準に該ライトコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知を開始されるまでの第２の期間と、前記ライトコマンドの転送に要する第３の期間とを合計した期間より長いことを特徴とする記憶デバイスコントローラ。
【請求項１０】
請求項１又は２、６乃至９のいずれかにおいて、
前記アボートコマンドタイプが、
前記記憶デバイスに対するライト動作又はリード動作のアボートを指示するためのアボートコマンド、前記ライト動作又は前記リード動作中に前記記憶デバイスを初期化するためのリセットコマンド、又は前記ライト動作又は前記リード動作中に前記記憶デバイスを非選択状態とするデセレクトコマンドを指定する情報であることを特徴とする記憶デバイスコントローラ。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
ビジー検出部が、
転送データが伝送されるデータラインの電位に基づいて前記記憶デバイスがビジー状態か否かを検出することを特徴とする記憶デバイスコントローラ。
【請求項１２】
請求項１乃至１１のいずれか記載の記憶デバイスコントローラと、
前記記憶デバイスコントローラに対してライトコマンド、リードコマンド又はアボートコマンドの発行を制御する制御マスタと、
を含むことを特徴とする情報処理装置。
【請求項１３】
前記記憶デバイスが挿抜される記憶デバイス装着部と、
請求項１２記載の情報処理装置と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスコントローラ、情報処理装置及び電子機器等に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやその周辺機器（例えばプリンタ装置、スキャナ装置又は複合機）に限らず、携帯電話機、携帯情報端末（Personal Digital Assistant：ＰＤＡ）やオーディオプレーヤ等の携帯型の情報機器、ロボット装置、デジタルカメラ、ビデオカメラ、全地球測位システム（Global Positioning System：ＧＰＳ)装置、テレビ受信装置、プロジェクタ等の電子機器に、データストレージ用途にフラッシュメモリカードが使用される機会が多くなっている。
【０００３】
フラッシュメモリカードには、その用途に応じて、種々の規格、バージョンが規定されている。例えば動画データ、静止画データ又は音楽データを携帯するために可搬性に優れ、大容量のフラッシュメモリとして、ＭＭＣ（MultiMediaCard）規格等に準拠したフラッシュメモリカードがある。また、例えば携帯機器や家庭用電化製品の小型化により小型のコネクタ形状や高速なデータ転送が可能なＨＤＤ装置として、ＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した記憶装置がある。このようなフラッシュメモリカード等は、例えば特許文献１に開示されている。
【０００４】
このようなフラッシュメモリカード等にアクセスするためには、転送クロックをフラッシュメモリカードに供給してその規格で規定されたコマンド（制御コマンド）を発行する必要がある。そして、該フラッシュメモリに対し該転送クロックに同期してライトデータを入力させたりリードデータを出力させたりする。このとき、フラッシュメモリカードは、ビジー状態であることを通知することで、コマンドに対応したライトデータの出力停止を要求できる。このように、市場に広く流通するフラッシュメモリカードにアクセスする場合は、その規格で規定された仕様に合わせてアクセスする必要がある。
【特許文献１】特開２００６−１３９５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
フラッシュメモリカード等にアクセスするために用意されているコマンドの中で、データ転送のアボートを指示するアボートコマンドが規定されている。フラッシュメモリカード等にアクセスするコントローラ側では、ライト動作中にアボートコマンドを発行すると、ライトデータの出力を停止させて通常のシーケンスに戻る必要がある。また、コントローラ側では、リード動作中にアボートコマンドを発行すると、リードデータの受け付けを停止して通常のシーケンスに戻る必要がある。
【０００６】
しかしながら、ＭＭＣ規格やＣＥ−ＡＴＡ規格等のいずれにおいても、アボートコマンドが発行されたときの具体的な動作について規定されていない。従って、ライト動作中にフラッシュメモリカード等からビジー状態が通知される場合の動作についても規定されていない。特に、ライトデータが伝送されるデータラインを使ってビジー状態が通知される場合には、ビジー状態が通知される前にライトデータの出力を停止させる等のシーケンスを経て、アボートコマンドによるアボート処理を確実に終了させる必要がある。例えばビジー状態が通知されるまでライトデータを出力させてしまうと、正確にビジー状態を検出できず、アボート処理を正常に終了させることができなくなる場合がある。
【０００７】
本発明の幾つかの態様によれば、データ転送途中のアボート処理を確実に終了させる記憶デバイスコントローラ、情報処理装置及び電子機器を提供できる。
【課題を解決するための手段】
【０００８】
本発明は、記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してライトデータを書き込むためのライトコマンド、又は前記ライトコマンドによるライト動作のアボートを指示するアボートコマンドを発行するコマンド発行制御部と、
前記ライト動作中に前記アボートコマンドのエンドビットを検出するコマンドエンドビット検出部と、
前記アボートコマンドのエンドビットの検出後の第１のビジー検出開始期間の経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記アボートコマンドによるアボート処理の終了を通知する記憶デバイスコントローラに関係する。
【０００９】
本発明によれば、アボートコマンドのエンドビットの検出後、第１のビジー検出開始期間経過後に記憶デバイスの非ビジー状態の検出を条件に、アボート処理を通知するようにしたので、簡素な制御でアボート処理を確実に終了できる記憶デバイスコントローラを提供できる。
【００１０】
また本発明に係る記憶デバイスコントローラでは、
前記第１のビジー検出開始期間が、
前記アボートコマンドのエンドビットを基準に前記アボートコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知が開始されるまでの第２の期間とを合計した期間より長くてもよい。
【００１１】
本発明によれば、記憶デバイスの非ビジー状態が検出されたときには記憶デバイスが確実に非ビジー状態であると認識できるため、記憶デバイスのビジー状態の誤検出を確実に防止できるようになる。
【００１２】
また本発明は、
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してライトデータを書き込むためのライトコマンド、又は前記ライトコマンドによるライト動作のアボートを指示するためのアボートコマンドを発行する
コマンド発行制御部と、
前記ライト動作中に、前記アボートコマンドに対応する前記記憶デバイスからのレスポンスのエンドビットを検出するレスポンスエンドビット検出部と、
前記レスポンスのエンドビットが検出されたとき、又は所定のタイムアウト期間が経過したとき、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記アボートコマンドによるアボート処理の終了を通知する記憶デバイスコントローラに関係する。
【００１３】
本発明によれば、ライト動作中のアボートコマンドに対応するレスポンスのエンドビットの検出後又はレスポンスのタイムアウト期間後、記憶デバイスの非ビジー状態の検出を条件に、アボート処理を通知するようにしたので、簡素な制御でアボート処理を確実に終了できる記憶デバイスコントローラを提供できる。
【００１４】
また本発明は、
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対してリードデータを読み出すためのリードコマンド、又は前記リードコマンドによるリード動作のアボートを指示するためのアボートコマンドを発行するコマンド発行制御部と、
前記リード動作中に、前記アボートコマンドに対応する前記記憶デバイスからのレスポンスのエンドビットを検出するレスポンスエンドビット検出部と、
を含み、
前記レスポンスエンドビット検出部により前記レスポンスのエンドビットが検出されたときに、前記アボートコマンドによるアボート処理の終了を通知する記憶デバイスコントローラに関係する。
【００１５】
本発明によれば、リード動作中のアボートコマンドに対応するレスポンスのエンドビットの検出後、記憶デバイスの非ビジー状態の検出を条件に、アボート処理を通知するようにしたので、簡素な制御でアボート処理を確実に終了できる記憶デバイスコントローラを提供できる。
【００１６】
また本発明に係る記憶デバイスコントローラでは、更に、
前記ライト動作中又は前記リード動作中に、前記アボートコマンドのエンドビットを検出するコマンドエンドビット検出部を含み、
前記レスポンスエンドビット検出部が、
前記コマンドエンドビット検出部により前記アボートコマンドのエンドビットが検出された後に、前記レスポンスのエンドビットの検出を開始することができる。
【００１７】
本発明によれば、アボートコマンドのエンドビットが検出したことを条件にアボート処理を開始できるため、コマンド発行を制御するためのシーケンサやデータ転送を制御するシーケンサの構成を簡素化できる。即ち、アボートコマンドのエンドビットの検出前にレスポンスのエンドビットの検出を開始すると、アボートコマンドのエンドビットが検出されない場合のステートや、このステートにおいて想定されるレスポンスのエンドビットが検出の有無等を考慮する必要があり、シーケンサの構成が複雑になってしまう事態を回避できる。
【００１８】
また本発明は、
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスに対するライト動作のアボートを指示するアボートコマンドタイプのコマンドの発行指示を検出するコマンド発行指示検出部と、
前記コマンドの発行指示の検出後の第２のビジー検出開始期間経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記コマンドによるアボート処理の終了を通知する記憶デバイスコントローラに関係する。
【００１９】
本発明によれば、ライト動作中に、レスポンスが返ってこないコマンドでアボート処理を行う場合でも、簡素な制御でアボート処理を確実に終了させることができるようになる。
【００２０】
また本発明に係る記憶デバイスコントローラでは、
前記第２のビジー検出開始期間が、
前記コマンドのエンドビットを基準に前記コマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知を開始されるまでの第２の期間と、前記コマンドの転送に要する第３の期間とを合計した期間より長くてもよい。
【００２１】
本発明によれば、記憶デバイスの非ビジー状態が検出されたときには記憶デバイスが確実に非ビジー状態であると認識できるため、記憶デバイスのビジー状態の誤検出を確実に防止できるようになる。
【００２２】
また本発明は、
記憶デバイスに対するアクセス制御を行う記憶デバイスコントローラであって、
前記記憶デバイスからのリード動作のアボートを指示するアボートコマンドタイプのコマンドの発行指示を検出するコマンド発行指示検出部と、
前記コマンドの発行指示の検出後の第３のビジー検出開始期間経過後に、前記記憶デバイスのビジー状態の検出を開始するビジー検出部と、
を含み、
前記ビジー検出部により非ビジー状態が検出されたときに、前記コマンドによるアボート処理の終了を通知する記憶デバイスコントローラに関係する。
【００２３】
本発明によれば、リード動作中に、レスポンスが返ってこないコマンドでアボート処理を行う場合でも、簡素な制御でアボート処理を確実に終了させることができるようになる。
【００２４】
また本発明に係る記憶デバイスコントローラでは、
前記第３のビジー検出開始期間が、
ライトコマンドのエンドビットを基準に該ライトコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、前記ライトデータのエンドビットを基準に前記記憶デバイスのビジー状態の通知を開始されるまでの第２の期間と、前記ライトコマンドの転送に要する第３の期間とを合計した期間より長くてもよい。
【００２５】
本発明によれば、第３のビジー検出開始期間を、ライト動作時の第２のビジー検出開始期間と共通にできるため、制御及び構成を簡素化できる。その上、記憶デバイスの非ビジー状態が検出されたときには記憶デバイスが確実に非ビジー状態であると認識できるため、記憶デバイスのビジー状態の誤検出を確実に防止できるようになる。
【００２６】
また本発明に係る記憶デバイスコントローラでは、
前記アボートコマンドタイプが、
前記記憶デバイスに対するライト動作又はリード動作のアボートを指示するためのアボートコマンド、前記ライト動作又は前記リード動作中に前記記憶デバイスを初期化するためのリセットコマンド、又は前記ライト動作又は前記リード動作中に前記記憶デバイスを非選択状態とするデセレクトコマンドを指定する情報であってもよい。
【００２７】
本発明によれば、アボートコマンドのみならず、リセットコマンドやデセレクトコマンドでアボート処理を行うことができるので、上位アプリケーションに不要な処理負荷をかけることなく、簡素な制御で確実にアボート処理を終了させることができる。
【００２８】
また本発明に係る記憶デバイスコントローラでは、
ビジー検出部が、
転送データが伝送されるデータラインの電位に基づいて前記記憶デバイスがビジー状態か否かを検出することができる。
【００２９】
本発明によれば、ＭＭＣ規格等の市場に広く受け入れられている記憶デバイスのビジー状態を簡素な構成で検出でき、アボート処理を確実に終了できる記憶デバイスコントローラを提供できる。
【００３０】
また本発明は、
上記のいずれか記載の記憶デバイスコントローラと、
前記記憶デバイスコントローラに対してライトコマンド、リードコマンド又はアボートコマンドの発行を制御する制御マスタと、
を含む情報処理装置に関係する。
【００３１】
本発明によれば、データ転送途中のアボート処理を確実に終了させる記憶デバイスコントローラが適用された情報処理装置を提供できる。
【００３２】
また本発明は、
前記記憶デバイスが挿抜される記憶デバイス装着部と、
上記記載の情報処理装置と、
を含む電子機器に関係する。
【００３３】
本発明によれば、データ転送途中のアボート処理を確実に終了させる記憶デバイスコントローラが適用される電子機器を提供できる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００３５】
１．  情報処理装置
以下の実施形態では、記憶デバイスとしてのメモリカードにアクセスするためのカードコントローラ（記憶デバイスコントローラ）が情報処理装置としてのホストシステムに適用されているものとする。
【００３６】
図１に、本実施形態における情報処理装置が適用された電子機器の構成例のブロック図を示す。
【００３７】
図１の構成を有する電子機器としては、例えばパーソナルコンピュータ、その周辺機器（例えばプリンタ装置、スキャナ装置又は複合機）、携帯電話機、携帯情報端末、オーディオプレーヤ、ロボット装置、デジタルカメラ、ビデオカメラ、ＧＰＳ装置、テレビ受信装置、プロジェクタ等がある。
【００３８】
電子機器１０は、情報処理装置としてのホストシステム１００と、メモリカード（広義には記憶デバイス）２００とを含み、ホストシステム１００とメモリカード２００とがカードバス２０を介して接続されている。電子機器１０では、メモリカード２００に対する制御コマンドを発行することにより、メモリカード２００にデータを書き込んだり、メモリカード２００からデータを読み出したりすることができる。メモリカード２００は、例えばフラッシュメモリカード、Ｉ／ＯデバイスやＨＤＤ装置であってもよい。
【００３９】
ホストシステム１００は、制御マスタ１２６と、カードコントローラ（記憶デバイスコントローラ、メモリコントローラ）１３０とを含む。制御マスタ１２６は、中央演算処理装置（Central Processing Unit：ＣＰＵ）１１０、メモリ１２０を含む。ＣＰＵ１１０、メモリ１２０及びカードコントローラ１３０は、システムバス１２２を介して接続されている。従って、ＣＰＵ１１０は、システムバス１２２を介してメモリ１２０又はカードコントローラ１３０にアクセスできる。そして、ＣＰＵ１１０が、メモリ１２０に格納されたプログラムを読み込んで該プログラムに対応した処理を実行する。
【００４０】
カードコントローラ１３０とメモリカード２００とは、カードバス２０を介して接続され、ＣＰＵ１１０が、カードコントローラ１３０からメモリカード２００に対して発行する制御コマンドを生成する制御を行う。このような制御コマンドとしては、ライトコマンド、リードコマンド、アボートコマンド、リセットコマンド、デセレクトコマンド等がある。ライトコマンドは、カードコントローラ１３０がメモリカード２００にライトデータを書き込むライト動作を行うためのコマンドである。リードコマンドは、カードコントローラ１３０がメモリカード２００からリードデータを読み出すリード動作を行うためのコマンドである。アボートコマンドは、メモリカード２００に対するライト動作又はリード動作のアボートを指示するためのコマンドである。リセットコマンドは、電源立ち上げ時や例えばライト動作又はリード動作中等の通常動作中にメモリカード２００を初期化するためのコマンドである。デセレクトコマンドは、電源オフ直前や例えばライト動作又はリード動作中等の通常動作中にメモリカード２００を非選択状態とするためのコマンドである。メモリカード２００を「デバイス」と定義すると、カードコントローラ１３０はホスト側を制御する「ホストコントローラ」と定義することができる。
【００４１】
カードバス２０は、転送クロックＣＬＫが伝送されるクロックライン、制御コマンドＣＭＤ及びレスポンスが伝送されるコマンドライン、例えば４ビット（又は８ビット）の転送データＤＡＴ０−ＤＡＴ３が伝送されるデータラインを有する。カードコントローラ１３０が、転送クロックＣＬＫに同期してコマンドＣＭＤを発行する。そして、転送クロックＣＬＫに同期して例えば４ビットの転送データＤＡＴ０−ＤＡＴ３が送受信される。また、コマンドＣＭＤの種類によっては、メモリカード２００が制御コマンドＣＭＤに対するレスポンスとして、例えばコマンドラインを用いてレスポンスを返すことができる。
【００４２】
ここで、本実施形態のカードコントローラ１３０は、例えばＭＭＣ規格等のメモリーカード規格に準拠したメモリーカードや、ＣＥ−ＡＴＡ規格に準拠したＨＤＤ装置等に適用できる。
【００４３】
以下では、メモリカード２００がＭＭＣ規格に準拠したフラッシュメモリカードであり、カードバス２０にはＭＭＣ規格に準拠したシーケンスで制御コマンドやレスポンス、転送データの送受信が行われる場合を例に説明する。
【００４４】
このとき、カードバス２０のクロックライン、コマンドライン及びデータラインのうち双方向の信号ラインはプルアップされてもよい。例えば、コマンドライン及びデータラインが双方向の信号ラインである場合には、コマンドライン及びデータラインの各ラインはプルアップされてもよい。具体的には、コマンドラインは、所与の高電位側電源線との間にプルアップ抵抗を介してプルアップ接続されてもよく、同様に、データラインの各ラインは、所与の高電位側電源線との間にそれぞれプルアップ抵抗を介してプルアップ接続されてもよい。なお、クロックラインは、カードコントローラ１３０側の図示しないクロックドライバによりプッシュプル動作で駆動される。このクロックラインも、他のラインと同様にプルアップ接続されてもよい。
【００４５】
ＭＭＣ規格のメモリカード２００にアクセスする場合、データ転送が不要な期間に転送クロックＣＬＫを停止させることで消費電力を削減できる。その一方、転送クロックＣＬＫを停止させることで、カードコントローラ１３０からのコマンドの送出、メモリカード２００からのレスポンスの受信、データラインを介してデータの送受信ができなくなる。
【００４６】
図２に、図１のメモリカード２００の構成例のブロック図を示す。
【００４７】
メモリカード２００は、カードＩ／Ｆ回路２１０、ＰＬＬ回路２１２、カードＩ／Ｆ制御回路２２０、カード制御レジスタ部２３０、メモリＩ／Ｆ回路２４０、メモリコア部２５０を含む。
【００４８】
カードＩ／Ｆ回路２１０は、カードバス２０を伝送される信号のインタフェース処理を行う。カードＩ／Ｆ制御回路２２０は、カードＩ／Ｆ回路２１０を制御してカードバス２０に信号を出力する制御を行ったり、カードバス２０からの信号を入力する制御を行ったりする。カードＩ／Ｆ回路２１０は、転送クロックＣＬＫに同期して入力された転送データやコマンドデータを図示しないバッファにバッファリングしたり、該バッファにバッファリングされた転送データやレスポンスデータを転送クロックＣＬＫに同期して出力したりする。
【００４９】
ＰＬＬ回路２１２は、図示しない発振器からの発振出力を逓倍して、転送クロックＣＬＫとは異なる内部クロックを生成する。ＰＬＬ回路２１２によって生成された内部ブロックは、メモリカード２００の各部に供給され、メモリカード２００は内部クロックに同期して動作する。より具体的には、カードＩ／Ｆ回路２１０にバッファリングされたデータは、内部クロックに同期して読み出されてメモリカード２００の内部に取り込まれる。また、メモリカード２００の内部から出力されるデータは、内部クロックに同期してカードＩ／Ｆ回路２１０でバッファリングされ、転送クロックＣＬＫに同期して外部に出力される。従って、メモリカード２００は、転送クロックＣＬＫの供給が停止されたとしても、メモリカード２００の内部で、内部クロックに同期してメモリにアクセスできるようになっている。即ち、メモリカード２００は、転送クロックに同期して入力されたコマンドに対しデータのアクセスをその内部クロックに同期して行うことができる。
【００５０】
カード制御レジスタ部２３０は、複数の制御レジスタを有する。例えば、カード制御レジスタ部２３０は、動作条件レジスタ（Operation Conditions Resister：ＯＣＲ）、カード識別レジスタ（Card IDentification register：ＣＩＤ）、カード特性データレジスタ（Card-Specific Data register：ＣＳＤ）、相対カードアドレスレジスタ（Relative Card Address register：ＲＣＡ）、ドライバステージレジスタ（Driver Stage Register:ＤＳＲ）等を含む。
【００５１】
カードＩ／Ｆ制御回路２２０は、カード制御レジスタ部２３０の設定データに基づいてメモリカード２００の各部を制御すると共に、その制御結果をカード制御レジスタ部２３０に格納する制御を行う。
【００５２】
メモリＩ／Ｆ回路２４０は、カードＩ／Ｆ制御回路２２０の制御により、メモリコア部２５０のメモリ素子にデータを書き込んだり、メモリコア部２５０のメモリ素子からデータを読み出したりする制御を行う。
【００５３】
メモリコア部２５０は、複数のメモリ素子を有する。メモリＩ／Ｆ回路２４０は、予め割り当てられたアドレスに対応したメモリ素子からデータを読み出したり、該アドレスに対応したメモリ素子にデータを書き込んだりすることができる。
【００５４】
カードコントローラ１３０のメモリカード２００に対するライト動作中には、カードコントローラ１３０からのライトデータがカードＩ／Ｆ回路２１０においてバッファリングされる。そして、カードＩ／Ｆ回路２１０にバッファリングされたデータは、内部クロックに同期して読み出されてメモリＩ／Ｆ回路２４０を介してメモリコア部２５０に書き込まれる。このようなメモリコア部２５０へのデータ書き込み期間中は、カードコントローラ１３０が次のライトデータを入力してこないように、カードＩ／Ｆ回路２１０はカードコントローラ１３０に対してビジー状態を通知する。カードＩ／Ｆ回路２１０は、転送データが伝送されるデータラインのうち転送データＤＡＴ０が伝送されるデータラインをＬレベルに駆動することで、カードコントローラ１３０にビジー状態を通知する。
【００５５】
メモリカード２００は、カードコントローラ１３０からＲ１ｂレスポンスを伴うコマンドを受信したときも、同様にカードコントローラ１３０に対してビジー状態を通知する。
【００５６】
２．  カードコントローラ（記憶デバイスコントローラ）
図１のカードコントローラ１３０は、ライト転送中やリード転送中にアボートコマンドを発行した場合であっても、以下のように制御することで正常にアボート処理を終了させることができる。
【００５７】
２．１  第１の実施形態
図３に、第１の実施形態におけるカードコントローラ１３０の構成例のブロック図を示す。図３において、図１と同一部分には同一符号を付し、適宜説明を省略する。
【００５８】
カードコントローラ１３０は、クロック制御部３００と、コマンド制御部３１０と、データ制御部３２０と、ビジー検出部３３０とを含む。更に、カードコントローラ１３０は、アボート処理通知部３４０を含むことができる。
【００５９】
クロック制御部３００は、カードバス２０のクロックラインの出力制御を行う。コマンド制御部３１０は、カードバス２０のコマンドラインの入出力制御を行う。データ制御部３２０は、カードバス２０のデータラインの入出力制御を行う。
【００６０】
クロック制御部３００は、コマンドや転送データが同期して送受信するための同期クロックである転送クロックＣＬＫを供給したり、供給を停止したりする。クロック制御部３００が転送クロックＣＬＫの供給を停止することで、データの転送を中断させることできるが、コマンドがレスポンスの送受信も停止する。
【００６１】
コマンド制御部３１０は、コマンドラインを介してメモリカード２００にコマンドを発行することができる。より具体的には、コマンド制御部３１０は、コマンドの発行と、該コマンドに対応するレスポンスの受信制御を行う。このようなコマンド制御部３１０は、コマンド発行制御部３１２と、コマンドエンドビット検出部３１４とを含む。
【００６２】
図４（Ａ）に、コマンド制御部３１０により送信されるコマンドの説明図を示す。また、図４（Ｂ）に、コマンド制御部３１０により受信されるレスポンスの説明図を示す。
【００６３】
コマンドは、スタートビット「Ｓ」が「０」、エンドビット「Ｅ」が「１」で挟まれた所定ビットのコマンドデータである。図４（Ａ）に示すようなコマンドが、コマンドラインを介して送信される。コマンド発行制御部３１２は、図４（Ａ）に示すようなフォーマットのコマンドを発行する制御を行う。より具体的には、コマンド発行制御部３１２は、メモリカード２００に対してライトデータを書き込むためのライトコマンド、又は該ライトコマンドによるライト動作のアボートを指示するアボートコマンドを発行する制御を行う。また、コマンド発行制御部３１２は、メモリカード２００からのリードデータを読み出すためのリードコマンド、リセットコマンド又はデセレクトコマンドを発行できる。コマンドエンドビット検出部３１４は、コマンド発行制御部３１２により発行されたライトコマンドにより開始されるライト動作中に、コマンド発行制御部３１２によりアボートコマンドが発行されたとき、図４（Ａ）に示すようなアボートコマンドのエンドビットを検出する。
【００６４】
レスポンスは、スタートビット「Ｓ」が「０」、エンドビット「Ｅ」が「１」で挟まれた所定ビットのレスポンスデータである。図４（Ｂ）に示すようなレスポンスが、コマンドラインを介して受信される。
【００６５】
図３において、データ制御部３２０は、データラインを介して転送データを送信又は受信する制御を行う。なお、データラインのうち転送データＤＡＴ０が送受信されるデータラインが、メモリカード２００により「Ｌ」レベルに駆動されることで、カードコントローラ１３０は、メモリカード２００がビジー状態であることを通知される。
【００６６】
ビジー検出部３３０は、転送データが伝送されるデータラインの電位に基づいてメモリカード２００がビジー状態か否かを検出することができる。ビジー検出部３３０は、コマンドエンドビット検出部３１４により上記のアボートコマンドのエンドビットの検出後の第１のビジー検出開始期間の経過後に、メモリカード２００のビジー状態の検出を開始する。ここで、第１のビジー検出開始期間は、上記のアボートコマンドのエンドビットを基準に該アボートコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、該ライトデータのエンドビットを基準にメモリカード２００のビジー状態の通知が開始されるまでの第２の期間とを合計した期間より長いことが望ましい。アボートコマンドが発行されると、ライトデータの出力を停止する一方、メモリカード２００からビジー状態の通知が開始される。従って、上記の第１の期間と第２の期間とを合計した期間より長い第１のビジー検出開始期間経過後にビジー状態の検出を開始することで、アボートコマンドのエンドビットの検出後にビジー状態の検出を開始した場合のビジー状態の誤検出を確実に防止できる。即ち、第１のビジー検出開始期間経過前でメモリカード２００の非ビジー状態が検出されたとしてもノイズ等に起因した誤検出の可能性があるが、第１のビジー検出開始期間経過後にメモリカード２００の非ビジー状態が検出されたときにはメモリカード２００が確実に非ビジー状態であると認識できるため、上述の誤検出を確実に防止できるようになる。
【００６７】
ＭＭＣ規格又はＣＥ−ＡＴＡ規格等に準拠する場合は、第１の期間は、転送クロックＣＬＫの２クロックに相当する期間であり、第２の期間は、転送クロックＣＬＫの２クロックに相当する期間である。従って、第１のビジー検出開始期間は、転送クロックＣＬＫの少なくとも５（＝２＋２＋１）クロックに相当する期間である。
【００６８】
アボート処理通知部３４０は、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたときに、上記のアボートコマンドによるアボート処理の終了を通知する。このようなアボート処理通知部３４０は、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたとき、カードコントローラ１３０を制御する制御マスタ１２６（ＣＰＵ１１０）に対して割り込み信号によりアボート処理の終了通知割り込みを発生させたり、図示しないステータスレジスタ（制御レジスタ）にアボート処理の終了通知フラグをセットしたり、アボート処理の終了を制御マスタ１２６に通知できる。
【００６９】
このようなアボート処理の終了通知割り込みを受けた制御マスタ１２６は、その割り込み要因を解析して、次のコマンドを発行する制御等を行うことができる。また、カードコントローラ１３０に対してポーリングを実行する制御マスタ１２６が、アボート処理の終了通知フラグがセットされていることを検出すると、次のコマンドを発行する制御等を行うことができる。
【００７０】
なお、コマンドエンドビット検出部３１４が、コマンド発行制御部３１２により発行されたリードコマンドにより開始されるリード動作中にアボートコマンドのエンドビットを検出したとき、ビジー状態を検出することなく、カードコントローラ１３０に蓄えられたリードデータを読み出した後に、アボート処理の終了を通知する。リード動作ではメモリカード２００からビジー状態が通知されることがないからである。なお、カードコントローラ１３０の各部を制御するシーケンサを簡素化する目的で、コマンドエンドビット検出部３１４が、リード動作中にアボートコマンドのエンドビットを検出したときに一旦ビジー状態を検出してからアボート処理の通知を終了するようにしてもよい。リード動作中にアボートコマンドがメモリカード２００に受け付けられると、カードバス２０のデータラインがプルアップ状態に設定され、非ビジー状態となるからである。
【００７１】
図３において、コマンド制御部３１０及びデータ制御部３２０は、アクセス制御部（書き込み制御部、リード制御部）として機能する。即ち、このアクセス制御部は、メモリカード２００に対してコマンドを発行し、転送クロックに同期してメモリカード２００にアクセスする制御を行う。例えばアクセス制御部がライトコマンドを発行する場合、転送クロックに同期してライトデータを出力してメモリカード２００に該ライトデータの書き込み制御を行う。
【００７２】
２．１．１  処理例
図５に、第１の実施形態においてライト動作中にアボートコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【００７３】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がライトコマンドを発行しているものとする。このライトコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するライト動作を開始する。
【００７４】
そして、カードコントローラ１３０のコマンド発行制御部３１２が、ライト動作中にアボートコマンドを発行する（ステップＳ１０）。
【００７５】
コマンドエンドビット検出部３１４は、アボートコマンドのエンドビットの検出を行い（ステップＳ１１：Ｎ）、該エンドビットを検出したとき（ステップＳ１１：Ｙ）、カードコントローラ１３０では、図示しないカウンタのカウント動作が開始される。
【００７６】
そして、該カウンタのカウント動作により上述の第１のビジー検出開始期間が経過したか否かが検出される（ステップＳ１２：Ｎ）。第１のビジー検出開始期間が経過したことが検出されたとき（ステップＳ１２：Ｙ）、ビジー検出部３３０は、メモリカード２００のビジー状態の検出を行う（ステップＳ１３）。即ち、ライト動作中のアボートコマンドのエンドビットが検出されたとき、少なくとも第１のビジー検出開始期間経過後にメモリカード２００のビジー状態の検出を開始する。
【００７７】
ビジー検出部３３０によりメモリカード２００のビジー状態が検出されたとき（ステップＳ１４：Ｎ）、ステップＳ１３に戻り、ビジー検出部３３０が次のビジー検出タイミングでメモリカード２００のビジー状態の検出を行う。ステップＳ１４において、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたとき（ステップＳ１４：Ｙ）、アボート処理通知部３４０が、ライト動作中のアボートコマンドによるアボート処理の終了を通知し（ステップＳ１５）、一連の処理を終了する（エンド）。
【００７８】
図６に、第１の実施形態においてリード動作中にアボートコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【００７９】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がリードコマンドを発行しているものとする。このリードコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するリード動作を開始する。
【００８０】
そして、カードコントローラ１３０のコマンド発行制御部３１２が、リード動作中にアボートコマンドを発行する（ステップＳ２０）。
【００８１】
コマンドエンドビット検出部３１４は、アボートコマンドのエンドビットの検出を行い（ステップＳ２１：Ｎ）、該エンドビットを検出したとき（ステップＳ２１：Ｙ）、カードコントローラ１３０では、上述のリード動作で既にメモリカード２００から取り込んでバッファリングしたリードデータを例えばメモリ１２０に読み出す制御を行う（ステップＳ２２）。
【００８２】
その後、アボート処理通知部３４０が、ライト動作中のアボートコマンドによるアボート処理の終了を通知し（ステップＳ２３）、一連の処理を終了する（エンド）。
【００８３】
２．１．２  ハードウェア構成例
図７に、図１又は図３のカードコントローラ１３０のハードウェア構成例のブロック図を示す。
【００８４】
カードコントローラ１３０は、制御インタフェース（InterFace：Ｉ／Ｆ）回路１３２、ＦＩＦＯ（First-In First-Out)Ｉ／Ｆ回路１３４、コントローラ制御レジスタ部１３６、クロック制御部１３８、コマンド制御部１４０、データ制御部１４６、ドライバ部１５０を含む。コマンド制御部１４０は、コマンドシーケンサ１４２、アボートタイミング生成回路１４３を含む。データ制御部１４６は、データシーケンサ１４８、ビジー検出部１４９を含む。
【００８５】
制御Ｉ／Ｆ回路１３２は、システムバス１２２を介してＣＰＵ１１０やメモリ１２０との間で送受信される制御信号や制御データのインタフェース処理を行う。ＣＰＵ１１０は、制御Ｉ／Ｆ回路１３２を介してコントローラ制御レジスタ部１３６の各制御レジスタに制御データを設定できる。
【００８６】
ＦＩＦＯＩ／Ｆ回路１３４は、システムバス１２２を介してＣＰＵ１１０やメモリ１２０との間で送受信される制御信号や制御データのインタフェース処理を行う。システムバス１２２を介してメモリ１２０から読み出されたデータ（ライトデータ）は、ＦＩＦＯＩ／Ｆ回路１３４の図示しないＦＩＦＯ（バッファ）においてバッファリングされた後、データ制御部１４６に供給される。また、メモリカード２００から読み出されたデータ（リードデータ）は、ＦＩＦＯＩ／Ｆ回路１３４の図示しないＦＩＦＯ（バッファ）においてバッファリングされた後に、システムバス１２２を介してＣＰＵ１１０又はメモリ１２０に出力される。なお、このＦＩＦＯは、いわゆる先入れ先出し構造を有する必要はなく、ランダムアクセスが可能なメモリであってもよい。
【００８７】
コントローラ制御レジスタ部１３６は、１又は複数の制御レジスタを有し、各制御レジスタにはカードコントローラ１３０を制御するための制御データが設定される。コントローラ制御レジスタ部１３６の各制御レジスタに設定された制御データに対応した制御信号に基づいて、カードコントローラ１３０の各部が制御される。制御マスタ１２６からのアボートコマンドやその他のコマンドの発行指示ＣＭＤ＿Ｇｏは、コントローラ制御レジスタ部１３６のコマンド発行指示レジスタにセットされることでカードコントローラ１３０のコマンド制御部１４０及びデータ制御部１４６にコマンド発行指示が通知される。
【００８８】
また、制御Ｉ／Ｆ回路１３２又はコントローラ制御レジスタ部１３６は、ＣＰＵ１１０（制御マスタ１２６）に対して割り込み信号を発生する図示しない割り込み発生部を有する。このような制御Ｉ／Ｆ回路１３２は、図３のアボート処理通知部３４０の機能を有する。
【００８９】
また、図７では、データ制御部１４６で検出されたデータ転送完了通知が、コントローラ制御レジスタ部１３６に入力され、制御マスタ１２６に対して割り込み通知されるようになっている。
【００９０】
クロック制御部１３８は、カードコントローラ１３０の各部にクロックを供給すると共に、カードバス２０を構成するクロックラインに転送クロックＣＬＫを出力する制御を行う。クロック制御部１３８は、図３のクロック制御部３００の機能を有する。
【００９１】
コマンド制御部１４０は、図３のコマンド制御部３１０の機能を有する。コマンドシーケンサ１４２は、コントローラ制御レジスタ部１３６の制御レジスタの制御データ（コマンドデータ）に基づいて、カードバス２０を構成するコマンドラインを介してメモリカード２００に対してコマンドを発行する制御を行う。コマンドシーケンサ１４２は、コマンドの発行が完了すると、コマンド完了通知をコントローラ制御レジスタ部１３６及びデータ制御部１４６に出力する。コントローラ制御レジスタ部１３６に入力されたコマンド完了通知に基づき、制御マスタ１２６に対してコマンド完了通知割り込みを発行する。
【００９２】
また、コマンドシーケンサ１４２は、該コマンドに対応するメモリカード２００からのレスポンスを受信する制御を行う。コマンドシーケンサ１４２において受信されたレスポンスは、レスポンスデータとしてコントローラ制御レジスタ部１３６に出力される。
【００９３】
アボートタイミング生成回路１４３は、アボートタイミングを指定するアボートタイミング信号ＡｂｏｒｔＳｔｏｐを生成する。
【００９４】
コマンド制御部１４０は、このアボートタイミング信号ＡｂｏｒｔＳｔｏｐや、コマンドのエンドビットを検出したことを示すコマンド送信完了通知をデータ制御部１４６に出力できる。
【００９５】
データ制御部１４６は、図３のデータ制御部３２０の機能を有する。データシーケンサ１４８は、コントローラ制御レジスタ部１３６の制御レジスタの制御データに基づいて、カードバス２０を構成するデータラインを介してメモリカード２００との間でデータを送受信する制御を行う。データ制御部１４６においてデータ転送完了が検出されると、コントローラ制御レジスタ部１３６に対してデータ転送完了通知を出力する。コントローラ制御レジスタ部１３６に入力されたデータ転送完了通知に基づき、制御マスタ１２６に対してデータ転送完了通知割り込みを発行する。
【００９６】
ビジー検出部１４９は、メモリカード２００のビジー状態を検出する。ビジー検出部１４９の機能は、図３のビジー検出部３３０の機能を有する。より具体的には、ビジー検出部１４９は、転送データＤＡＴ０が伝送されるデータラインの信号と、コマンドシーケンサ１４２の制御結果と、データシーケンサ１４８の制御結果とが入力され、バスを介して接続されるメモリカード２００のコマンド発行後のビジー状態を検出できる。
【００９７】
ドライバ部１５０は、コマンドシーケンサ１４２の制御結果に基づいてコマンドラインの信号の入出力制御を行う。また、データシーケンサ１４８の制御結果に基づいてデータラインの信号の入出力制御を行う。
【００９８】
図８に、図７のカードコントローラ１３０の構成要部のブロック図を示す。
【００９９】
図８において、図７と同一部分には同一符号を付し、適宜説明を省略する。
【０１００】
クロック制御部１３８は、転送クロックＣＬＫを生成するクロック生成回路４００を含む。カードコントローラ１３０は、コマンドシーケンサ１４２及びデータシーケンサ１４８に加えて、更にアボートタイミング生成回路１４３を含むことができる。
【０１０１】
制御マスタ１２６は、カードコントローラ１３０のコントローラ制御レジスタ部１３６にコマンドの発行に必要な設定情報を設定した後、コマンド発行指示を行うことで、メモリカード２００に対してコマンドを発行する制御を行う。例えば、制御マスタ１２６は、コントローラ制御レジスタ部１３６に、ＭＭＣ規格又はＣＥ−ＡＴＡ規格等で規定されたコマンドのインデックス番号（ＣＭＤ＿Ｉｎｄｅｘ）、当該コマンドがアボートコマンドであるか否かを示すコマンドタイプ情報（ＣＭＤ＿Ｔｙｐｅ）を指定する。そして、制御マスタ１２６がカードコントローラ１３０のコントローラ制御レ
ジスタ部１３６のコマンド発行指示制御レジスタ（図示せず）にアクセスすることで、コマンド発行指示が行われる。このコマンド発行指示により、カードコントローラ１３０が上述のようにコントローラ制御レジスタ部１３６に設定された設定情報に対応したコマンドをメモリカード２００に対して発行する。
【０１０２】
コマンドシーケンサ１４２は、コントローラ制御レジスタ部１３６から、制御マスタ１２６によるコマンドの発行指示を示す発行指示信号ＣＭＤ＿Ｇｏを受けて、コマンドのインデックス番号ＣＭＤ＿Ｉｎｄｅｘ及びコマンドタイプ情報ＣＭＤ＿Ｔｙｐｅ等に対応したシーケンス制御を行って、上述のようにコントローラ制御レジスタ部１３６に設定された設定情報に対応したコマンドをメモリカード２００に対して発行する。データシーケンサ１４８もまた、コントローラ制御レジスタ部１３６で設定された各種情報に対応したシーケンス制御を行って、転送データの送受信制御を行う。
【０１０３】
アボートタイミング生成回路１４３は、アボートタイミング信号ＡｂｏｒｔＳｔｏｐを生成する。より具体的には、アボートタイミング生成回路１４３は、コマンドタイプ情報ＣＭＤ＿Ｔｙｐｅにより当該コマンドがアボートコマンドか否かを検出し、コマンドシーケンサ１４２において遷移制御される当該ステートを判別して、アボートコマンドのエンドビットの有無を検出する。この結果、アボートコマンドのエンドビットを検出すべきステートにおいて該エンドビットが検出されると、アボートタイミング生成回路１４３は、パルス状のアボートタイミング信号ＡｂｏｒｔＳｔｏｐを出力する。アボートタイミング信号ＡｂｏｒｔＳｔｏｐを受けたデータシーケンサ１４８は、第１のビジー検出開始期間の経過後に、メモリカード２００のビジー状態の検出を開始する。
【０１０４】
図９に、図８のドライバ部１５０の構成の概要を示す。
【０１０５】
ドライバ部１５０は、クロックラインを駆動して転送クロックＣＬＫを出力するクロック出力ドライバと、コマンドラインに接続される第１の入出力ドライバと、データラインに接続される第２の入出力ドライバとを含む。
【０１０６】
第１の入出力ドライバは、コマンドシーケンサ１４２によって制御されコマンドラインを駆動して制御コマンドを出力する出力ドライバと、コマンドラインを介して入力されるレスポンスを受信するための入力ドライバとを含む。出力ドライバは、コマンドシーケンサ１４２からの出力制御信号ＣＭＤ＿Ｏｅがクロック出力ドライバの入力信号ＣＬＫ＿Ｏｕｔで同期化された信号に基づいて、コマンドシーケンサ１４２からの出力信号ＣＭＤ＿Ｏｕｔが入力信号ＣＬＫ＿Ｏｕｔで同期化された信号の出力制御を行う。これにより、コントローラ制御レジスタ部１３６の制御レジスタの内容に基づいてコマンドシーケンサ１４２によって生成された制御コマンドが、第１の入出力ドライバの出力ドライバによりコマンドラインに出力される。そして、該制御コマンドに対応してメモリカード２００から出力されたレスポンスが、第１の入出力ドライバの入力ドライバで受信される。入力ドライバの出力は、転送クロックＣＬＫで同期化されてコマンドシーケンサ１４２に入力信号ＣＭＤ＿Ｉｎとして入力される。
【０１０７】
第２の入出力ドライバは、データシーケンサ１４８によって制御されデータラインを駆動して転送データを出力する出力ドライバと、データラインを介して入力される転送データを受信するための入力ドライバとを含む。出力ドライバは、データシーケンサ１４８からの出力制御信号ＤＡＴ＿Ｏｅがクロック出力ドライバの入力信号ＣＬＫ＿Ｏｕｔで同期化された信号に基づいて、データシーケンサ１４８からの出力信号ＤＡＴ＿Ｏｕｔが入力信号ＣＬＫ＿Ｏｕｔで同期化された信号の出力制御を行う。これにより、コントローラ制御レジスタ部１３６の制御レジスタの内容に基づいて、ＦＩＦＯＩ／Ｆ回路１３４からのデータが、データシーケンサ１４８の制御により、転送データとして第２の入出力ドライバの出力ドライバを介してデータラインに出力される。そして、メモリカード２００から出力されたレスポンスが、第１の入出力ドライバの入力ドライバで受信される。入力ドライバの出力は、転送クロックＣＬＫで同期化されてデータシーケンサ１４８に入力信号ＤＡＴ＿Ｉｎとして入力される。なお、図８では、転送データが４ビットデータである。
【０１０８】
図１０に、図８のコマンドシーケンサ１４２の動作説明図を示す。
【０１０９】
コマンドシーケンサ１４２は、複数のステートを有し、各ステートに応じた制御を行う。各ステートには、予め遷移条件が決められており、該遷移条件を満足することで次のステートに遷移する。
【０１１０】
電源投入（ＳＱ１）後の初期状態では、コマンドシーケンサ１４２は、ＩＤＬＥステートＳＴ１に遷移する。制御マスタ１２６で実行される上位アプリケーションからメモリカード２００に対して制御コマンドの発行指示（ＳＱ２）があると、コマンドシーケンサ１４２は、ＳＥＮＤ＿ＣＭＤステートＳＴ２に遷移する。
【０１１１】
ＳＥＮＤ＿ＣＭＤステートＳＴ２では、制御マスタ１２６が、カードコントローラ１３０の制御レジスタに制御コマンドを発行するためのコマンド指定情報やそのパラメータ情報を制御レジスタに設定する。そして、上位アプリケーションからの制御コマンドの発行指示を受けて制御マスタ１２６が、カードコントローラ１３０の図示しない制御コマンド発行指示レジスタにアクセスしてコマンドのエンドビットを送信すると（ＳＱ３）、コマンドシーケンサ１４２は、ＷＡＩＴ＿ＲＥＳＰステートＳＴ３に遷移する。
【０１１２】
ＷＡＩＴ＿ＲＥＳＰステートＳＴ３では、所定のタイムアウト期間だけ、上記のコマンドに対応したレスポンスのスタートビットを待つ。ＷＡＩＴ＿ＲＥＳＰステートＳＴ３において、所定のタイムアウト期間内にレスポンスのスタートビットを検出すると、コマンドシーケンサ１４２は、ＲＣＶ＿ＲＥＳＰステートＳＴ４に遷移する（ＳＱ４）。ＷＡＩＴ＿ＲＥＳＰステートＳＴ３において、所定のタイムアウト期間が経過すると、コマンドシーケンサ１４２は、ＥＲＲ＿ＰＲＯステートＳＴ６に遷移する（ＳＱ１００）。
【０１１３】
ＲＣＶ＿ＲＥＳＰステートＳＴ４では、コマンド制御部３１０が、コマンドラインを介してメモリカード２００からのレスポンスデータを受信する。そして、レスポンスのエンドビットの受信が完了する（ＳＱ５）と、コマンドシーケンサ１４２は、ＥＮＤ８ＣＬＫステートＳＴ５に遷移する。
【０１１４】
ＥＮＤ８ＣＬＫステートＳＴ５では、コマンド発行間隔期間である転送クロックＣＬＫの８クロック分だけ待機する。そして、ＲＣＶ＿ＲＥＳＰステートＳＴ４において受信されたレスポンスのエラーが検出されているとき、又はレスポンスがタイムアウト期間内に受信されないとき、コマンドシーケンサ１４２は、ＥＲＲ＿ＰＲＯステートＳＴ６に遷移する（ＳＱ６）。ＥＲＲ＿ＰＲＯステートＳＴ６では、制御Ｉ／Ｆ回路１３２又はコントローラ制御レジスタ部１３６が、検出されたエラーに応じて制御マスタ１２６にエラーが発生した旨の割り込みを発生させる。その後、コマンドシーケンサ１４２は、ＥＲＲ＿ＰＲＯステートＳＴ６からＩＤＬＥステートＳＴ１に遷移する（ＳＱ７）。
【０１１５】
ＲＣＶ＿ＲＥＳＰステートＳＴ４において受信されたレスポンスが正常のとき、コマンドシーケンサ１４２は、Ｃｍｄ＿ＣｍｐステートＳＴ７に遷移する（ＳＱ８）。Ｃｍｄ＿ＣｍｐステートＳＴ７では、制御Ｉ／Ｆ回路１３２又はコントローラ制御レジスタ部１３６が、制御マスタ１２６にコマンド完了通知割り込みを発生させる。その後、コマンドシーケンサ１４２は、Ｃｍｄ＿ＣｍｐステートＳＴ７からＩＤＬＥステートＳＴ１に遷移する（ＳＱ９）。
【０１１６】
図１１に、図８のデータシーケンサ１４８の動作説明図を示す。
【０１１７】
データシーケンサ１４８は、複数のステートを有し、各ステートに応じた制御を行う。各ステートには、予め遷移条件が決められており、該遷移条件を満足することで次のステートに遷移する。
【０１１８】
電源投入（ＳＱ１０）後の初期状態では、データシーケンサ１４８は、ＩＤＬＥステートＳＴ１０に遷移する。制御マスタ１２６で実行される上位アプリケーションからメモリカード２００に対して制御コマンドの発行指示があると、その制御コマンドの種類によって遷移先のステートが変わる。
【０１１９】
ＩＤＬＥステートＳＴ１０において、上位アプリケーションから発行指示された制御コマンドがライトコマンドのとき（ＳＱ１１）、データシーケンサ１４８は、ＣＨＫ＿ＢＵＳＹステートＳＴ１１に遷移する。
【０１２０】
ＣＨＫ＿ＢＵＳＹステートＳＴ１１では、メモリカード２００がビジー状態か否かが検出される。ＣＨＫ＿ＢＵＳＹステートＳＴ１１において、メモリカード２００の非ビジー状態が検出されたとき（ＳＱ１２）、データシーケンサ１４８は、ＷＲ＿ＢＬ＿ＤＡＴステートＳＴ１２に遷移する。ＣＨＫ＿ＢＵＳＹステートＳＴ１１において、メモリカード２００のビジー状態が検出されたとき（ＳＱ１３）、データシーケンサ１４８は、ＣＨＫ＿ＢＵＳＹステートＳＴ１１を繰り返す。
【０１２１】
ＷＲ＿ＢＬ＿ＤＡＴステートＳＴ１２において、データシーケンサ１４８は、メモリカード２００に対してライトデータを送出する制御を行う。１ブロック分のライトデータを送出すると（ＳＱ１４）、データシーケンサ１４８は、ＣＲＣＳＴステートＳＴ１３に遷移する。
【０１２２】
ＣＲＣＳＴステートＳＴ１３では、データシーケンサ１４８は、ライトデータのＣＲＣステータスをチェックし、ＣＲＣステータスが正常で次のブロックの転送が必要なとき（ＳＱ１５）、データシーケンサ１４８は、ＷＲ＿ＢＬ＿ＤＡＴステートＳＴ１２に遷移する。ＣＲＣＳＴステートＳＴ１３において、ＣＲＣステータスが正常で次のブロックの転送が不要なとき（ＳＱ１６）、データシーケンサ１４８は、ＥＮＤ８ＣＬＫステートＳＴ２０に遷移する。
【０１２３】
ＣＨＫ＿ＢＵＳＹステートＳＴ１１、ＷＲ＿ＢＬ＿ＤＡＴステートＳＴ１２又はＣＲＣＳＴステートＳＴ１３において、アボートタイミング信号ＡｂｏｒｔＳｔｏｐがアクティブになると（アボートコマンドのエンドビットを検出すると）、ＡＢＴステートＳＴ５０に遷移する（ＳＱ５１、ＳＱ５２、ＳＱ５３）。
【０１２４】
ＥＮＤ８ＣＬＫステートＳＴ２０では、コマンド発行間隔期間である転送クロックＣＬＫの８クロック分だけ待機する。そして、転送クロックＣＬＫの８クロック分の期間が経過する（ＳＱ２０）と、データシーケンサ１４８は、ＣＨＫ＿ＢＵＳＹステートＳＴ２１に遷移する。
【０１２５】
ＣＨＫ＿ＢＵＳＹステートＳＴ２１では、メモリカード２００がビジー状態か否かが検出される。ＣＨＫ＿ＢＵＳＹステートＳＴ２１において、メモリカード２００の非ビジー状態が検出されたとき（ＳＱ２２）、データシーケンサ１４８は、Ｔｒａｎ＿ＣｍｐステートＳＴ２２に遷移する。ＣＨＫ＿ＢＵＳＹステートＳＴ２１において、メモリカード２００のビジー状態が検出されたとき（ＳＱ２１）、データシーケンサ１４８は、ＣＨＫ＿ＢＵＳＹステートＳＴ２１を繰り返す。
【０１２６】
Ｔｒａｎ＿ＣｍｐステートＳＴ２２では、データシーケンサ１４８が、制御マスタ１２６に対して転送終了割り込みを発生させる制御が行われる。転送終了割り込みを発生した後（ＳＱ２３）、データシーケンサ１４８は、ＩＤＬＥステートＳＴ１０に遷移する。
【０１２７】
ＩＤＬＥステートＳＴ１０において、上位アプリケーションから発行指示された制御コマンドがリードコマンドのとき（ＳＱ３１）、データシーケンサ１４８は、ＲＤ＿ＢＬ＿ＤＡＴステートＳＴ３１に遷移する。
【０１２８】
ＲＤ＿ＢＬ＿ＤＡＴステートＳＴ３１では、データシーケンサ１４８は、メモリカード２００から１ブロック分のリードデータを読み出す制御を行う。次のブロックのリードデータを読み出す必要があるとき（ＳＱ３２）、データシーケンサ１４８は、ＲＤ＿ＢＬ＿ＤＡＴステートＳＴ３１を繰り返す。ＲＤ＿ＢＬ＿ＤＡＴステートＳＴ３１において、次のブロックのリードデータを読み出す必要がないとき（ＳＱ３３）、データシーケンサ１４８は、ＥＮＤ８ＣＬＫステートＳＴ３２に遷移する。
【０１２９】
ＲＤ＿ＢＬ＿ＤＡＴステートＳＴ３１において、アボートタイミング信号ＡｂｏｒｔＳｔｏｐがアクティブになると（アボートコマンドのエンドビットを検出すると）ＡＢＴステートＳＴ５０に遷移する（ＳＱ５４）。
【０１３０】
ＥＮＤ８ＣＬＫステートＳＴ３２では、コマンド発行間隔期間である転送クロックＣＬＫの８クロック分だけ待機する。そして、転送クロックＣＬＫの８クロック分の期間が経過する（ＳＱ３４）と、データシーケンサ１４８は、Ｔｒａｎ＿ＣｍｐステートＳＴ２２に遷移する。
【０１３１】
ＩＤＬＥステートＳＴ１０において、上位アプリケーションから発行指示された制御コマンドが、Ｒ１ｂレスポンスを有するコマンドのとき（ＳＱ４４）、データシーケンサ１４８は、ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３に遷移する。
【０１３２】
ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３では、データシーケンサ１４８は、メモリカード２００からのレスポンスを受信し、メモリカード２００の種類（規格、バージョン）によって変化するビジー状態の検出タイミングをマスク制御して特定する。次に、ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３において、ビジー状態の検出タイミングになると、データシーケンサ１４８は、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４２に遷移する（ＳＱ４５）。
【０１３３】
ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４２では、メモリカード２００がビジー状態か否かが検出される。ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４２においてメモリカード２００のビジー状態が検出されたとき（ＳＱ４６）、データシーケンサ１４８は、Ｒ１ｂ＿ＢＵＳＹステートＳＴ４４に遷移する。ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４２においてメモリカード２００の非ビジー状態が検出されたとき（ＳＱ４７）、データシーケンサ１４８は、Ｒ１ｂＣＯＭＰステートＳＴ４５に遷移する。
【０１３４】
Ｒ１ｂ＿ＢＵＳＹステートＳＴ４４において、メモリカード２００の非ビジー状態が検出されたとき（ＳＱ４８）、データシーケンサ１４８は、Ｒ１ｂＣＯＭＰステートＳＴ４５に遷移する。
【０１３５】
Ｒ１ｂＣＯＭＰステートＳＴ４５では、アボート処理通知部３４０がアボート処理の終了を制御マスタ１２６に通知する（割り込み通知、ステータスレジスタによるステータス通知）。その後、データシーケンサ１４８は、ＩＤＬＥステートＳＴ１０に遷移する（ＳＱ４９）。なお、図１１において、Ｒ１ｂＣＯＭＰステートＳＴ４５を、Ｔｒａｎ＿ＣｍｐステートＳＴ２２と共通化してもよい。
【０１３６】
ＡＢＴステートＳＴ５０では、所定のアボート終了条件を満足したとき（ＳＱ５５）、当該ステートからＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３に遷移する。より具体的には、第１の実施形態では、図８のアボートタイミング生成回路１４３からパルス信号であるアボートタイミング信号ＡｂｏｒｔＳｔｏｐのパルスを基準に第１のビジー検出開始期間経過後に、データシーケンサ１４８は、ＡＢＴステートＳＴ５０からＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３に遷移する。従って、図１１の動作を行うデータシーケンサ１４８では、ライト動作中やリード動作中にかかわらず、メモリカード２００のビジー状態を検出してからアボート処理を終了させている。
【０１３７】
図１１の動作を行うデータシーケンサ１４８では、アボート処理を、Ｒ１ｂレスポンスの制御シーケンスで行うようにしたので、データシーケンサ１４８に無駄なステートを設けることなく、確実にアボート処理を終了させることができる。
【０１３８】
また、第１の実施形態によれば、ライト動作又はリード動作終了後に、ＭＭＣ規格等で規定されているコマンド発行間隔期間である転送クロックＣＬＫの８クロックに相当する期間を待つＥＮＤ８ＣＬＫステートに遷移させてからＴｒａｎ＿ＣｍｐステートＳＴ２２に遷移させるようにしたので、コマンド発行直前に上述のコマンド発行間隔を管理することなく、いつでも次のコマンドを発行できる状態でコマンドの発行制御を開始できるようになる。
【０１３９】
図１２に、第１の実施形態におけるカードコントローラ１３０のライト動作中のアボート処理の動作例のタイミング図を示す。
【０１４０】
図１２では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示し、図１２では図１０又は図１１の各ステートを分割した詳細なステートを示している。
【０１４１】
コマンドシーケンサ１４２は、ライト動作中にアボートコマンドの発行指示がある（ＴＧ１）と、ＳＥＮＤ＿ＣＭＤステートに遷移し、コマンドラインを介してアボートコマンドが送出される（ＴＧ２）。
【０１４２】
アボートコマンドのエンドビットを受信すると、データシーケンサ１４８は、ＡＢＴステートに遷移し（ＴＧ３）、次の遷移タイミングで、ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。
【０１４３】
ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートでは、第１のビジー検出開始期間経過を待ち、第１のビジー検出期間経過後に、データシーケンサ１４８は、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移してメモリカード２００の非ビジー状態の検出を開始する（ＴＧ４）。メモリカード２００の非ビジー状態が検出されると、データシーケンサ１４８は、Ｒ１ｂ＿ＢＵＳＹステートに遷移後にＲ１ｂＣＯＭＰステートに遷移する（ＴＧ５）。Ｒ１ｂＣＯＭＰステートにおいて、アボート処理の終了通知を制御マスタ１２６に対して行う。
【０１４４】
このように、第１の実施形態では、カードコントローラ１３０が、ライト動作中のアボートコマンドのエンドビットを検出したとき、第１のビジー検出開始期間の経過後にメモリカード２００の非ビジー状態の検出を開始する。そして、該非ビジー状態が検出されたときに、アボートコマンドによるアボート処理の終了を通知する。
【０１４５】
なお、リード動作中にアボートコマンドが発行されたときに図１１に示すシーケンスで制御して、メモリカード２００の非ビジー状態を検出後にアボート終了通知を行ってもよいが、既にカードコントローラ１３０にバッファリングされているリードデータを制御マスタ１２６が正常に取り込むために、Ｒ１ｂレスポンスが有するコマンドのシーケンスで制御することなく、通常のリード動作のシーケンスで終了させてもよい。
【０１４６】
図１３に、第１の実施形態の変形例におけるカードコントローラ１３０のリード動作中のアボート処理の動作例のタイミング図を示す。
【０１４７】
図１３では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示している。このようにリード動作中にアボートコマンドが発行されたとき、アボートコマンドのエンドビットを検出後にＡＢＴステートに遷移する。その後、次の遷移タイミングで、ＡＢＴステートからＥＮＤ８ＣＬＫステートに遷移してからアボート処理の終了通知を行う。
【０１４８】
２．２  第２の実施形態
第１の実施形態におけるカードコントローラ１３０は、アボートコマンドのエンドビットを検出したときにビジーの検出を開始するようにしていたが、本発明は、これに限定されるものではない。第２の実施形態におけるカードコントローラ１３０は、アボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットを検出したとき、或いはレスポンスの所定タイムアウト期間が経過したときにビジーの検出を開始するようにしている。
【０１４９】
図１４に、第２の実施形態におけるカードコントローラ１３０の構成例のブロック図を示す。図１４において、図３と同一部分には同一符号を付し、適宜説明を省略する。
【０１５０】
図１４に示すカードコントローラ１３０が図３に示すカードコントローラ１３０と異なる点は、レスポンスエンドビット検出部３１６においてアボートコマンドのレスポンスのエンドビットが検出されたこと、或いはレスポンスの所定タイムアウト期間が経過したことを条件にメモリカード２００の非ビジー状態の検出を開始する等してアボート処理を終了させる点である。
【０１５１】
より具体的には、レスポンスエンドビット検出部３１６は、ライトコマンドによるライト動作中に、アボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットを検出する。そして、ビジー検出部３３０が、レスポンスエンドビット検出部３１６によって該レスポンスのエンドビットが検出されたとき、或いはレスポンスの所定タイムアウト期間が経過したとき、メモリカード２００のビジー状態の検出を開始する。アボート処理通知部３４０は、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたときに、当該アボートコマンドによるアボート処理の終了を通知する。レスポンスのタイムアウト期間は、例えばコマンドのエンドビットの検出タイミングを基準とした所定期間（例えば転送クロックＣＬＫの６４クロックに相当する期間）や、レスポンスのスタートビットの検出タイミングを基準とした所定期間とすることができる。
【０１５２】
ここで、コマンドエンドビット検出部３１４が、ライト動作中に、アボートコマンドのエンドビットを検出し、レスポンスエンドビット検出部３１６が、コマンドエンドビット検出部３１４によりアボートコマンドのエンドビットが検出された後に、レスポンスのエンドビットの検出を開始することが望ましい。こうすることで、アボートコマンドのエンドビットが検出したことを条件にアボート処理を開始できるため、コマンド発行を制御するためのシーケンサやデータ転送を制御するシーケンサの構成を簡素化できる。即ち、ア
ボートコマンドのエンドビットの検出前にレスポンスのエンドビットの検出を開始すると、アボートコマンドのエンドビットが検出されない場合のステートや、このステートにおいて想定されるレスポンスのエンドビットが検出の有無等を考慮する必要があり、シーケンサの構成が複雑になってしまう。
【０１５３】
また、レスポンスエンドビット検出部３１６は、リードコマンドによるリード動作中に、アボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットを検出する。そして、ビジー検出部３３０が、レスポンスエンドビット検出部３１６によって該レスポンスのエンドビットが検出されたとき、メモリカード２００のビジー状態の検出を行うことなく、アボート処理通知部３４０は、当該アボートコマンドによるアボート処理の終了を通知することができる。
【０１５４】
ここで、コマンドエンドビット検出部３１４が、リード動作中にアボートコマンドのエンドビットを検出し、レスポンスエンドビット検出部３１６が、コマンドエンドビット検出部３１４によりアボートコマンドのエンドビットが検出された後に、レスポンスのエンドビットの検出を開始することが望ましい。こうすることで、アボートコマンドのエンドビットが検出したことを条件にアボート処理を開始できるため、コマンド発行を制御するためのシーケンサやデータ転送を制御するシーケンサの構成を簡素化できる。
【０１５５】
２．２．１  処理例
図１５に、第２の実施形態においてライト動作中にアボートコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【０１５６】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がライトコマンドを発行しているものとする。このライトコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するライト動作を開始する。
【０１５７】
そして、カードコントローラ１３０のコマンド発行制御部３１２が、ライト動作中にアボートコマンドを発行する（ステップＳ２０）。
【０１５８】
コマンドエンドビット検出部３１４は、アボートコマンドのエンドビットの検出を行い（ステップＳ２１：Ｎ）、該エンドビットを検出したとき（ステップＳ２１：Ｙ）、レスポンスエンドビット検出部３１６が、ステップＳ２０で発行されたアボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットの検出を開始する（ステップＳ２２：Ｎ）。このとき、コマンド制御部３１０では、アボートコマンドのエンドビットを検出したときに、レスポンスのタイムアウト期間を計時するための図示しないカウンタのカウント動作が開始される。ステップＳ２２において、レスポンスのエンドビットが検出されなかったとき（ステップＳ２２：Ｎ）、コマンド制御部３１０は、上記のタイマで計時する期間が所定のタイムアウト期間が経過したか否かを判別し（ステップＳ８０）、タイムアウトが経過していないことが検出されたとき（ステップＳ８０：Ｎ）、ステップＳ２２に戻る。
【０１５９】
ステップＳ２２においてレスポンスのエンドビットが検出されたとき（ステップＳ２２：Ｙ）、又はステップＳ８０においてタイムアウト期間が経過したことが検出されたとき（ステップＳ８０：Ｙ）、ビジー検出部３３０は、メモリカード２００のビジー状態の検出を行う（ステップＳ２３）。
【０１６０】
ビジー検出部３３０によりメモリカード２００のビジー状態が検出されたとき（ステップＳ２４：Ｎ）、ステップＳ２３に戻り、ビジー検出部３３０が次のビジー検出タイミングでメモリカード２００のビジー状態の検出を行う。ステップＳ２４において、ビジー検
出部３３０によりメモリカード２００の非ビジー状態が検出されたとき（ステップＳ２４：Ｙ）、アボート処理通知部３４０が、ライト動作中のアボートコマンドによるアボート処理の終了を通知し（ステップＳ２５）、一連の処理を終了する（エンド）。
【０１６１】
図１６に、第２の実施形態においてリード動作中にアボートコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【０１６２】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がリードコマンドを発行しているものとする。このリードコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するリード動作を開始する。
【０１６３】
そして、カードコントローラ１３０のコマンド発行制御部３１２が、リード動作中にアボートコマンドを発行する（ステップＳ３０）。
【０１６４】
コマンドエンドビット検出部３１４は、アボートコマンドのエンドビットの検出を行い（ステップＳ３１：Ｎ）、該エンドビットを検出したとき（ステップＳ３１：Ｙ）、レスポンスエンドビット検出部３１６が、ステップＳ３０で発行されたアボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットの検出を開始する（ステップＳ３２：Ｎ）。
【０１６５】
そして、ステップＳ３２においてレスポンスのエンドビットが検出されたとき（ステップＳ３２：Ｙ）、ビジー検出部３３０においてメモリカード２００のビジー状態の検出を行うことなく、アボート処理通知部３４０が、ライト動作中のアボートコマンドによるアボート処理の終了を通知し（ステップＳ３３）、一連の処理を終了する（エンド）。
【０１６６】
なお、ステップＳ３２において、レスポンスのエンドビット検出後に、一旦メモリカード２００の非ビジー状態の検出を行ってから、該非ビジー状態の検出を条件にステップＳ３３に進んでもよい。また、図１５と同様に、コマンド制御部３１０では、アボートコマンドのエンドビットを検出したときに、レスポンスのタイムアウト期間を計時するための図示しないカウンタのカウント動作を開始させてもよい。そして、ステップＳ３２において、レスポンスのエンドビットが検出されなかったとき（ステップＳ３２：Ｎ）、コマンド制御部３１０は、上記のタイマで計時する期間が所定のタイムアウト期間が経過したか否かを判別し、タイムアウトが経過していないことが検出されたとき（ステップＳ８０：Ｎ）、ステップＳ３２に戻るようにしてもよい。この場合、ステップＳ３２においてレスポンスのエンドビットが検出されたとき（ステップＳ３２：Ｙ）、又は上記のタイムアウト期間が経過したことが検出されたとき、ビジー検出部３３０は、メモリカード２００のビジー状態の検出を行うこととなり、リード動作時のシーケンスをライト動作時と共通化でき、構成及び制御の簡素化を図ることができる。
【０１６７】
２．２．２  ハードウェア構成例
第２の実施形態におけるカードコントローラ１３０は、図７〜図１１で示す第１の実施形態におけるカードコントローラ１３０と同様のハードウェア構成を有することができる。
【０１６８】
但し、第２の実施形態では、図１１のデータシーケンサ１４８のＡＢＴステートにおいて、アボートコマンドに対応するレスポンスのエンドビットが検出されたことを条件に、ＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートＳＴ４３に遷移する。
【０１６９】
図１７に、第２の実施形態におけるカードコントローラ１３０のライト動作中のアボート処理の動作例のタイミング図を示す。
【０１７０】
図１７では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示し、図１７では図１０又は図１１の各ステートを分割した詳細なステートを示している。
【０１７１】
コマンドシーケンサ１４２は、ライト動作中にアボートコマンドの発行指示がある（ＴＧ１０）と、ＳＥＮＤ＿ＣＭＤステートに遷移し、コマンドラインを介してアボートコマンドが送出される（ＴＧ１１）。
【０１７２】
アボートコマンドのエンドビットを受信すると、データシーケンサ１４８は、ＡＢＴステートに遷移し（ＴＧ１２）、次の遷移タイミングでＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。
【０１７３】
データシーケンサ１４８は、アボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットを受信すると、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移し（ＴＧ１３）、その後メモリカード２００の非ビジー状態の検出を開始する（ＴＧ１４）。メモリカード２００の非ビジー状態が検出されると、データシーケンサ１４８は、Ｒ１ｂＣＯＭＰステートに遷移する。Ｒ１ｂＣＯＭＰステートにおいて、アボート処理の終了通知を制御マスタ１２６に対して行う。
【０１７４】
このように、第２の実施形態では、カードコントローラ１３０が、ライト動作中のアボートコマンドのエンドビットを検出したとき、該アボートコマンドに対応するレスポンスのエンドビットを検出後にメモリカード２００の非ビジー状態の検出を開始する。そして、該非ビジー状態が検出されたときに、アボートコマンドによるアボート処理の終了を通知する。
【０１７５】
なお、第２の実施形態では、リード動作中にアボートコマンドが発行されたときに、必ずしもメモリカード２００の非ビジー状態の検出を行う必要がないが、図１１に示すような遷移制御を行うデータシーケンサ１４８の簡素化のために、以下のようにメモリカード２００の非ビジー状態の検出を一旦行ってからアボート処理の通知を行うようにしてもよい。
【０１７６】
図１８に、第２の実施形態におけるカードコントローラ１３０のリード動作中のアボート処理の動作例のタイミング図を示す。
【０１７７】
図１８では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示し、図１８では図１０又は図１１の各ステートを分割した詳細なステートを示している。
【０１７８】
コマンドシーケンサ１４２は、リード動作中にアボートコマンドの発行指示がある（ＴＧ２０）と、ＳＥＮＤ＿ＣＭＤステートに遷移し、コマンドラインを介してアボートコマンドが送出される（ＴＧ２１）。
【０１７９】
アボートコマンドのエンドビットを受信すると、データシーケンサ１４８は、ＡＢＴステートに遷移し（ＴＧ２２）、次の遷移タイミングでＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。
【０１８０】
データシーケンサ１４８は、アボートコマンドに対応するメモリカード２００からのレスポンスのエンドビットを受信すると、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移し（ＴＧ２３）、その後メモリカード２００の非ビジー状態の検出を開始する（ＴＧ２４）。リード動作では必ずメモリカード２００は非ビジー状態であるため、このメモリカード２００の非ビジー状態が検出されると、データシーケンサ１４８は、Ｒ１ｂＣＯＭＰステートに遷移する。Ｒ１ｂＣＯＭＰステートにおいて、アボート処理の終了通知を制御マスタ１２６に対して行う。
【０１８１】
以上のように、第２の実施形態によれば、Ｒ１ｂレスポンスのシーケンスを流用して、確実にアボート処理を終了させることができる。
【０１８２】
また、第２の実施形態では、レスポンスのエンドビットが検出されたことを条件にアボート処理を行うようにしている。なぜなら、レスポンスのスタートビットの検出を条件とした場合、メモリカード２００からのレスポンスのスタートビットがビジー状態の通知より早いケースを考慮する必要があり、制御が複雑になるからである。
【０１８３】
２．３  第３の実施形態
第２の実施形態におけるカードコントローラ１３０では、アボートコマンドのレスポンスのエンドビットを検出したことを条件にアボート処理を開始していたが、本発明が、これに限定されるものではない。ＭＭＣ規格等のアボートコマンドは、メモリカード２００からのレスポンスがカードコントローラ１３０側に返ってくるため、レスポンスのエンドビットを待つことができた。
【０１８４】
しかしながら、ＭＭＣ規格等では、アボートコマンド以外のリセットコマンドやデセレクトコマンドを用いて、ライト動作又はリード動作中にデータ転送のアボートを行うことができる。ここで、リセットコマンドは、ライト動作又はリード動作中にメモリカード２００を初期化するためのコマンドである。デセレクトコマンドは、ライト動作又はリード動作中にメモリカード２００を非選択状態とするためのコマンドである。
【０１８５】
ところが、ＭＭＣ規格等では、リセットコマンドやデセレクトコマンドを発行しても、メモリカード２００からのレスポンスが返ってこない。そのため、レスポンスのエンドビットを監視する第２の実施形態では、リセットコマンドやデセレクトコマンドを用いてアボート処理を終了させることができない。カードコントローラ１３０においてリセットコマンドやデセレクトコマンドを用いてアボート処理を終了させることができない場合、制御マスタ１２６が、アボート処理に伴いコマンドシーケンサ１４２やデータシーケンサ１４８を初期化する必要があり、制御マスタ１２６のソフトウェア処理が煩雑になってしまう。そこで、レスポンスの有無にかかわらずアボート処理を終了させることが望ましい。
【０１８６】
第３の実施形態におけるカードコントローラ１３０は、アボートコマンド、リセットコマンド又はデセレクトコマンドの上位アプリケーションからのコマンド発行指示があったときにアボート処理を終了させる。
【０１８７】
図１９に、第３の実施形態におけるカードコントローラ１３０の構成例のブロック図を示す。図１９において、図１４と同一部分には同一符号を付し、適宜説明を省略する。
【０１８８】
図１９に示すカードコントローラ１３０が図１４に示すカードコントローラ１３０と異なる点は、コマンドエンドビット検出部３１４及びレスポンスエンドビット検出部３１６の代わりにコマンド発行指示検出部３５０が設けられている点である。
【０１８９】
コマンド発行指示検出部３５０は、制御マスタ１２６で実行される上位アプリケーションからのコマンド発行指示を検出する。コマンド発行指示を検出したコマンド発行指示検出部３５０は、コマンド発行制御部３１２に該コマンド発行指示を通知し、コマンド発行制御部３１２が上述のようにコマンドを発行する。更に、コマンド発行指示検出部３５０は、上位アプリケーションからのコマンド発行指示のうち、ライト動作又はリード動作のアボートを指示するアボートコマンドタイプのコマンドの発行指示を検出する。アボートコマンドタイプは、制御マスタ１２６（上位アプリケーション）からコントローラ制御レジスタ部１３６に設定されるコマンドタイプ情報により指定される。ここで、アボートコマンドタイプであるコマンドは、アボートコマンド、リセットコマンド又はデセレクトコマンドである。
【０１９０】
このようなアボートコマンドタイプのコマンドの発行指示を検出すると、その旨をビジー検出部３３０に通知する。ビジー検出部３３０は、コマンドの発行指示の検出後の所定期間経過後に、メモリカード２００のビジー状態の検出を開始する。
【０１９１】
ビジー検出部３３０は、ライト動作中にアボートコマンドタイプのコマンドの発行指示を検出したとき、第２のビジー検出開始期間経過後に、メモリカード２００のビジー状態の検出を開始する。ここで、第２のビジー検出開始期間は、アボートコマンドタイプのコマンドのエンドビットを基準に該コマンドに対応してライトデータの出力が停止されるまでの第１の期間と、該ライトデータのエンドビットを基準にメモリカード２００のビジー状態の通知が開始されるまでの第２の期間と、該コマンドの転送に要する第３の期間とを合計した期間より長いことが望ましい。アボートコマンドタイプのコマンドが発行されると、ライトデータの出力を停止する一方、メモリカード２００からビジー状態の通知が開始される。従って、上記の第１の期間と第２の期間とを合計した期間に加えて、当該コマンドの転送期間とを合計した第２のビジー検出開始期間経過後にビジー状態の検出を開始することで、アボートコマンドタイプのコマンドのレスポンスの有無にかかわらずビジー状態の誤検出を確実に防止できる。即ち、第２のビジー検出開始期間経過前でメモリカード２００の非ビジー状態が検出されたとしてもノイズ等に起因した誤検出の可能性があるが、第２のビジー検出開始期間経過後にメモリカード２００の非ビジー状態が検出されたときにはメモリカード２００が確実に非ビジー状態であると認識できるため、上述の誤検出を確実に防止できるようになる。
【０１９２】
ＭＭＣ規格又はＣＥ−ＡＴＡ規格等に準拠する場合は、第１の期間は、転送クロックＣＬＫの２クロックに相当する期間であり、第２の期間は、転送クロックＣＬＫの２クロックに相当する期間であり、第３の期間は、転送クロックＣＬＫの４８クロックに相当する期間である。従って、第２のビジー検出開始期間は、転送クロックＣＬＫの少なくとも５３（＝２＋２＋４８＋１）クロックに相当する期間である。
【０１９３】
また、ビジー検出部３３０は、リード動作中にアボートコマンドタイプのコマンドの発行指示を検出したとき、第３のビジー検出開始期間経過後に、メモリカード２００のビジー状態の検出を開始する。ここで、第３のビジー検出開始期間は、第２のビジー検出開始期間と同じであることが望ましい。即ち、第３のビジー検出開始期間は、ライトコマンドのエンドビットを基準に該ライトコマンドに対応してライトデータの出力が停止されるまでの第１の期間と、該ライトデータのエンドビットを基準にメモリカード２００のビジー状態の通知を開始されるまでの第２の期間と、ライトコマンドの転送に要する第３の期間とを合計した期間より長いことが望ましい。こうすることで、第３のビジー検出開始期間を、ライト動作時の第２のビジー検出開始期間と共通にできるため、制御及び構成を簡素化できる。しかも、上記の第３のビジー検出開始期間経過後にビジー状態の検出を開始することで、アボートコマンドタイプのコマンドのレスポンスの有無にかかわらずビジー状態の誤検出を確実に防止できる。即ち、第３のビジー検出開始期間経過前でメモリカード２００の非ビジー状態が検出されたとしてもノイズ等に起因した誤検出の可能性があるが、第３のビジー検出開始期間経過後にメモリカード２００の非ビジー状態が検出されたときにはメモリカード２００が確実に非ビジー状態であると認識できるため、上述の誤検出を確実に防止できるようになる。
【０１９４】
ＭＭＣ規格又はＣＥ−ＡＴＡ規格等に準拠する場合は、第１の期間は、転送クロックＣＬＫの２クロックに相当する期間であり、第２の期間は、転送クロックＣＬＫの２クロックに相当する期間であり、第３の期間は、転送クロックＣＬＫの４８クロックに相当する期間である。従って、第３のビジー検出開始期間は、転送クロックＣＬＫの少なくとも５３（＝２＋２＋４８＋１）クロックに相当する期間である。
【０１９５】
アボート処理通知部３４０は、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたとき、アボートコマンドによるアボート処理の終了を通知する。
【０１９６】
このような第３の実施形態によれば、どのようなタイミングでも、アボートコマンドを含む複数種類のコマンドを用いてアボート処理を確実に終了させることができるようになる。
【０１９７】
２．３．１  処理例
図２０に、第３の実施形態においてライト動作中にアボートコマンドタイプのコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【０１９８】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がライトコマンドを発行しているものとする。このライトコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するライト動作を開始する。
【０１９９】
まず、カードコントローラ１３０のコマンド発行指示検出部３５０は、ライト動作中にアボートコマンドタイプのコマンドの発行指示を検出する（ステップＳ４０：Ｎ）。コマンド発行指示検出部３５０によりアボートコマンドタイプのコマンドの発行指示を検出したとき（ステップＳ４０：Ｙ）、カードコントローラ１３０では、図示しないカウンタのカウント動作が開始される。
【０２００】
そして、該カウンタのカウント動作により上述の第２のビジー検出開始期間が経過したか否かが検出される（ステップＳ４１：Ｎ）。第２のビジー検出開始期間が経過したことが検出されたとき（ステップＳ４１：Ｙ）、ビジー検出部３３０は、メモリカード２００のビジー状態の検出を行う（ステップＳ４２）。即ち、ライト動作中にアボートコマンドタイプのコマンドの発行指示が検出されたとき、少なくとも第２のビジー検出開始期間経過後にメモリカード２００のビジー状態の検出を開始する。
【０２０１】
ビジー検出部３３０によりメモリカード２００のビジー状態が検出されたとき（ステップＳ４３：Ｎ）、ステップＳ４２に戻り、ビジー検出部３３０が次のビジー検出タイミングでメモリカード２００のビジー状態の検出を行う。ステップＳ４３において、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたとき（ステップＳ４３：Ｙ）、アボート処理通知部３４０が、ライト動作中のアボートコマンドタイプのコマンドによるアボート処理の終了を通知し（ステップＳ４４）、一連の処理を終了する（エンド）。
【０２０２】
図２１に、第３の実施形態においてリード動作中にアボートコマンドタイプのコマンドを発行したときのカードコントローラ１３０の動作例のフロー図を示す。
【０２０３】
ここで、カードコントローラ１３０では、コマンド発行制御部３１２がリードコマンドを発行しているものとする。このリードコマンドを発行することでカードコントローラ１３０はメモリカード２００に対するリード動作を開始する。
【０２０４】
まず、カードコントローラ１３０のコマンド発行指示検出部３５０は、リード動作中にアボートコマンドタイプのコマンドの発行指示を検出する（ステップＳ５０：Ｎ）。コマンド発行指示検出部３５０によりアボートコマンドタイプのコマンドの発行指示を検出したとき（ステップＳ５０：Ｙ）、カードコントローラ１３０では、図示しないカウンタのカウント動作が開始される。
【０２０５】
そして、該カウンタのカウント動作により上述の第３のビジー検出開始期間が経過したか否かが検出される（ステップＳ５１：Ｎ）。第３のビジー検出開始期間が経過したことが検出されたとき（ステップＳ５１：Ｙ）、ビジー検出部３３０は、メモリカード２００のビジー状態の検出を行う（ステップＳ５２）。即ち、リード動作中にアボートコマンドタイプのコマンドの発行指示が検出されたとき、少なくとも第３のビジー検出開始期間経過後にメモリカード２００のビジー状態の検出を開始する。
【０２０６】
ビジー検出部３３０によりメモリカード２００のビジー状態が検出されたとき（ステップＳ５３：Ｎ）、ステップＳ５２に戻り、ビジー検出部３３０が次のビジー検出タイミングでメモリカード２００のビジー状態の検出を行う。ステップＳ５３において、ビジー検出部３３０によりメモリカード２００の非ビジー状態が検出されたとき（ステップＳ５３：Ｙ）、アボート処理通知部３４０が、リード動作中のアボートコマンドタイプのコマンドによるアボート処理の終了を通知し（ステップＳ５４）、一連の処理を終了する（エンド）。
【０２０７】
２．３．２  ハードウェア構成例
第３の実施形態におけるカードコントローラ１３０は、図７に示す第１の実施形態におけるカードコントローラ１３０と同様のハードウェア構成を有することができる。
【０２０８】
図２２に、第３の実施形態におけるカードコントローラ１３０の構成要部のブロック図を示す。
【０２０９】
図２２において、図８と同一部分には同一符号を付し、適宜説明を省略する。図２２に示すカードコントローラ１３０の要部が図８に示すカードコントローラ１３０の要部と異なる点は、図２２ではアボートタイミング生成回路１４３に代えてアボートタイミング生成回路４１０が設けられている点である。
【０２１０】
アボートタイミング生成回路４１０は、アボートタイミング信号ＡｂｏｒｔＳｔｏｐを生成する。より具体的には、アボートタイミング生成回路４１０は、コマンドタイプ情報ＣＭＤ＿Ｔｙｐｅにより当該コマンドがアボートコマンドタイプのコマンドであるか否かを検出し、コマンドシーケンサ１４２において遷移制御される当該ステートを判別して、アボートコマンドタイプのコマンドのコマンド発行指示の有無を検出する。この結果、アボートコマンドタイプのコマンドの発行指示が検出されると、アボートタイミング生成回路４１０は、パルス状のアボートタイミング信号ＡｂｏｒｔＳｔｏｐを出力する。アボートタイミング信号ＡｂｏｒｔＳｔｏｐを受けたデータシーケンサ１４８は、第２又は第３のビジー検出開始期間の経過後に、メモリカード２００のビジー状態の検出を開始する。
【０２１１】
また、第３の実施形態では、図１１のデータシーケンサ１４８のＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートにおいて、ライト動作中のアボートコマンドタイプのコマンド発行指示の検出タイミングを基準に第２のビジー検出開始期間経過後に、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。また、図１１のデータシーケンサ１４８のＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートにおいて、リード動作中のアボートコマンドタイプのコマンド発行指示の検出タイミングを基準に第３のビジー検出開始期間経過後に、ＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。
【０２１２】
図２３に、第３の実施形態におけるカードコントローラ１３０のライト動作中のアボート処理の動作例のタイミング図を示す。
【０２１３】
図２３では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示し、図２４では図１０又は図１１の各ステートを分割した詳細なステートを示している。
【０２１４】
コマンドシーケンサ１４２は、ライト動作中にアボートコマンドタイプのコマンドの発行指示がある（ＴＧ３０）と、アボートタイミング信号ＡｂｏｒｔＳｔｏｐがアクティブとなり、データシーケンサ１４８がＡＢＴステートに遷移し、次の遷移タイミングでＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。そして、第２のビジー検出期間経過後に、データシーケンサ１４８がＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。その後、Ｒ１ｂレスポンスのシーケンスに沿って、アボート処理の終了と通知する。
【０２１５】
図２４に、第３の実施形態におけるカードコントローラ１３０のリード動作中のアボート処理の動作例のタイミング図を示す。
【０２１６】
図２４では、コマンドシーケンサ１４２のステートやデータシーケンサ１４８のステートも示し、図２４では図１０又は図１１の各ステートを分割した詳細なステートを示している。
【０２１７】
コマンドシーケンサ１４２は、リード動作中にアボートコマンドタイプのコマンドの発行指示がある（ＴＧ４０）と、アボートタイミング信号ＡｂｏｒｔＳｔｏｐがアクティブとなり、データシーケンサ１４８がＡＢＴステートに遷移する。そして、第３のビジー検出期間経過後に、データシーケンサ１４８がＡＢＴステートに遷移し、次の遷移タイミングでＭＡＳＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。そして、第３のビジー検出期間経過後に、データシーケンサ１４８がＣＨＫ＿Ｒ１ｂ＿ＢＵＳＹステートに遷移する。その後、Ｒ１ｂレスポンスのシーケンスに沿って、アボート処理の終了と通知する。
【０２１８】
以上のように、第３の実施形態によれば、レスポンスの有無にかかわらず、ライト転送又はリード転送のアボート処理を確実に終了させることができる。
【０２１９】
３．  電子機器
次に、第１〜第３の実施形態のいずれかにおけるカードコントローラが適用されるホストシステムを含む電子機器の構成例を示す。
【０２２０】
図２５に、本実施形態における電子機器としてのデジタルスチルカメラの構成例のブロック図を示す。
【０２２１】
図２５において、図１と同一部分には同一符号を付し、適宜説明を省略する。
【０２２２】
電子機器１０は、電荷結合素子（Charge Coupled Device：以下、ＣＣＤ）イメージセンサ８００、ＡＤ変換器８１０、メモリ８２０、クロック生成回路８３０、ホストシステム１００、ソケット（スロット、メモリ装着部、カード装着部、メモリカード装着部、記憶デバイス装着部）８４０を含む。
【０２２３】
ＣＣＤイメージセンサ８００は、複数の受光素子を有し、各受光素子に光が入射することにより発生した電荷を読み出して、画像を電気信号に変換する。ＣＣＤイメージセンサ８００によって電気信号に変換された画像データは、ＡＤ変換器８１０によりデジタル信号に変換された後、メモリ８２０にバッファリングされる。
【０２２４】
クロック生成回路８３０は、電子機器１０の基本クロックやホストシステム１００の基本クロックを生成する。
【０２２５】
図２５のプログラムメモリ１２０は、図１のメモリ１２０として機能する。
【０２２６】
ソケット８４０には、メモリカード２００が挿抜される。メモリカード２００がソケット８４０に挿入された状態で、カードバス２０を介してカードコントローラ１３０とメモリカード２００との間でＭＭＣ規格に従ったアクセスが行われる。
【０２２７】
ホストシステム１００の制御により、メモリ８２０に蓄えられた画像データをメモリカード２００に書き込んだり、メモリカード２００から画像データを読み出してメモリ８２０に蓄積させたりできる。
【０２２８】
図２５のような電子機器１０によれば、ホストシステム１００（カードコントローラ１３０）の制御及び構成が簡素化され、低消費電力化及び低コスト化が実現される。
【０２２９】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。本実施形態におけるメモリカードは、フラッシュメモリカードに限定されるものではない。本実施形態におけるメモリカードに代えて、Ｉ／Ｏデバイス、ＨＤＤ装置、ＤＶＤ装置、又は光ディスク装置であってもよい。
【０２３０】
更に、本発明を適用できるコマンドは上述の実施形態において説明したものに限定されるものではなく、例えばＭＭＣ規格と同様の思想に基づく規格やＭＭＣ規格を発展させた規格のビジー状態の通知を伴うレスポンスを有するコマンド、例えばＣＥ−ＡＴＡ規格と同様の思想に基づく規格やＣＥ−ＡＴＡ規格を発展させた規格のビジー状態の通知を伴うレスポンスを有するコマンドにも当然本発明を適用できる。
【０２３１】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０２３２】
【図１】本実施形態における情報処理装置が適用された電子機器の構成例のブロック図。
【図２】図１のメモリカードの構成例のブロック図。
【図３】第１の実施形態におけるカードコントローラの構成例のブロック図。
【図４】図４（Ａ）はコマンド制御部により送信されるコマンドの説明図。図４（Ｂ）はコマンド制御部により受信されるレスポンスの説明図。
【図５】第１の実施形態においてライト動作中にアボートコマンドを発行したときのカードコントローラの動作例のフロー図。
【図６】第１の実施形態においてリード動作中にアボートコマンドを発行したときのカードコントローラの動作例のフロー図。
【図７】図１又は図３のカードコントローラのハードウェア構成例のブロック図。
【図８】図７のカードコントローラの構成要部のブロック図。
【図９】図８のドライバ部の構成の概要を示す図。
【図１０】図８のコマンドシーケンサの動作説明図。
【図１１】図８のデータシーケンサの動作説明図。
【図１２】第１の実施形態におけるカードコントローラのライト動作中のアボート処理の動作例のタイミング図。
【図１３】第１の実施形態の変形例におけるカードコントローラのリード動作中のアボート処理の動作例のタイミング図。
【図１４】第２の実施形態におけるカードコントローラの構成例のブロック図。
【図１５】第２の実施形態においてライト動作中にアボートコマンドを発行したときのカードコントローラの動作例のフロー図。
【図１６】第２の実施形態においてリード動作中にアボートコマンドを発行したときのカードコントローラの動作例のフロー図。
【図１７】第２の実施形態におけるカードコントローラのライト動作中のアボート処理の動作例のタイミング図。
【図１８】第２の実施形態におけるカードコントローラのリード動作中のアボート処理の動作例のタイミング図。
【図１９】第３の実施形態におけるカードコントローラの構成例のブロック図。
【図２０】第３の実施形態においてライト動作中にアボートコマンドタイプのコマンドを発行したときのカードコントローラの動作例のフロー図。
【図２１】第３の実施形態においてリード動作中にアボートコマンドタイプのコマンドを発行したときのカードコントローラの動作例のフロー図。
【図２２】第３の実施形態におけるカードコントローラの構成要部のブロック図。
【図２３】第３の実施形態におけるカードコントローラのライト動作中のアボート処理の動作例のタイミング図。
【図２４】第３の実施形態におけるカードコントローラのリード動作中のアボート処理の動作例のタイミング図。
【図２５】本実施形態における電子機器としてのデジタルスチルカメラの構成例のブロック図。
【符号の説明】
【０２３３】
１０  電子機器、  ２０  カードバス、  １００  ホストシステム、  １１０  ＣＰＵ、１２０、８２０  メモリ、  １２２  システムバス、  １２６  制御マスタ、
１３０  カードコントローラ、  １３２  制御Ｉ／Ｆ回路、
１３４  ＦＩＦＯＩ／Ｆ回路、  １３６  コントローラ制御レジスタ部、
１３８  クロック制御部、  １４０、３１０  コマンド制御部、
１４２  コマンドシーケンサ、  １４３、４１０  アボートタイミング生成回路、
１４６、３２０  データ制御部、  １４８  データシーケンサ、
１４９、３３０  ビジー検出部、  １５０  ドライバ部、  ２００  メモリカード、
２１０  カードＩ／Ｆ回路、  ２１２  ＰＬＬ回路、  ２２０  カードＩ／Ｆ制御回路、２３０  カード制御レジスタ部、  ２４０  メモリＩ／Ｆ回路、
２５０  メモリコア部、  ３００  クロック制御部、  ３１２  コマンド発行制御部、
３１４  コマンドエンドビット検出部、  ３１６  レスポンスエンドビット検出部、
３４０  アボート処理通知部、  ３５０  コマンド発行指示検出部、
４００、８３０  クロック生成回路、  ８００  ＣＣＤイメージセンサ、
８１０  ＡＤ変換器、  ８４０  ソケット
【図１】
2010015429.tif 000003
【図２】
2010015429.tif 000004
【図３】
2010015429.tif 000005
【図４】
2010015429.tif 000006
【図５】
2010015429.tif 000007
【図６】
2010015429.tif 000008
【図７】
2010015429.tif 000009
【図８】
2010015429.tif 000010
【図９】
2010015429.tif 000011
【図１０】
2010015429.tif 000012
【図１１】
2010015429.tif 000013
【図１２】
2010015429.tif 000014
【図１３】
2010015429.tif 000015
【図１４】
2010015429.tif 000016
【図１５】
2010015429.tif 000017
【図１６】
2010015429.tif 000018
【図１７】
2010015429.tif 000019
【図１８】
2010015429.tif 000020
【図１９】
2010015429.tif 000021
【図２０】
2010015429.tif 000022
【図２１】
2010015429.tif 000023
【図２２】
2010015429.tif 000024
【図２３】
2010015429.tif 000025
【図２４】
2010015429.tif 000026
【図２５】
2010015429.tif 000027