(57)【要約】【課題】  種々の規格が混在してもコマンド発行の処理を簡素化できる制御コマンド生成装置、情報処理装置、電子機器及びプログラムを提供する。【解決手段】  記憶装置に対する制御コマンドを生成するための制御コマンド生成装置は、前記制御コマンドの種別に対応したブロック毎に複数のコマンド設定情報が登録されたコマンドテーブルと、ブロックに対応したテーブルインデックスを指定し、該テーブルインデックスにより特定されるブロックのコマンド設定情報を、前記記憶装置にアクセスするための制御装置の制御レジスタに設定することで該制御レジスタの設定情報に基づく前記制御コマンドを発行する制御を行うコマンド情報設定部とを含む。各コマンド設定情報が、前記制御コマンドの種類を指定するコマンド指定情報と、前記制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含む。【選択図】      図６
2008276650.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対する制御コマンドを生成するための制御コマンド生成装置であって、
前記制御コマンドの種別に対応したブロック毎に複数のコマンド設定情報が登録されたコマンドテーブルと、
ブロックに対応したテーブルインデックスを指定し、該テーブルインデックスにより特定されるブロックのコマンド設定情報を、前記記憶装置にアクセスするための制御装置の制御レジスタに設定することで該制御レジスタの設定情報に基づく前記制御コマンドを発行する制御を行うコマンド情報設定部とを含み、
各コマンド設定情報が、
前記制御コマンドの種類を指定するコマンド指定情報と、前記制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含むことを特徴とする制御コマンド生成装置。
【請求項２】
請求項１において、
前記各コマンド設定情報が、前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと前記パラメータ情報との組み合わせごとに設けられ、
前記テーブルインデックスと前記コマンドインデックスとが異なることを特徴とする制御コマンド生成装置。
【請求項３】
請求項１又は２において、
前記複数のコマンド設定情報は、
第１の規格で規定された制御コマンドに対応したコマンド設定情報と、第２の規格で規定された制御コマンドに対応したコマンド設定情報とを含むことを特徴とする制御コマンド生成装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記各コマンド設定情報が、
前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと、前記パラメータ情報としてのレスポンスタイプとを含み、
前記レスポンスタイプが、
前記制御コマンドに対応する前記記憶装置からのレスポンスシーケンスを指定する情報であることを特徴とする制御コマンド生成装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報が格納される順番が、当該コマンド指定情報及び前記パラメータ情報が設定される前記制御装置の制御レジスタを特定するアドレスの順番と同じであることを特徴とする制御コマンド生成装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報の各情報のビットの並びが、当該情報が設定される前記制御装置の制御レジスタのビットフィールドの並びと同じであることを特徴とする制御コマンド生成装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記コマンド情報設定部が、
前記記憶装置の規格又はバージョンの種類を判別し、その判別結果に基づいて前記テーブルインデックスを指定することを特徴とする制御コマンド生成装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記コマンドテーブルが、
ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格、ＳＤＩＯ（SD Input/Output）規格、又はＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した制御コマンドのコマンドインデックス及びレスポンスタイプと、コマンドの種類を指定するコマンドタイプ情報とを含むことを特徴とする制御コマンド生成装置。
【請求項９】
記憶装置にアクセスするための情報処理装置であって、
制御レジスタを有し、該制御レジスタの設定情報に基づいて前記記憶装置にアクセスするための制御コマンドを発行する制御装置と、
前記制御装置の制御レジスタに対して前記コマンド設定情報を設定する請求項１乃至８のいずれか記載の制御コマンド生成装置とを含むことを特徴とする情報処理装置。
【請求項１０】
前記記憶装置と、
請求項９記載の情報処理装置とを含むことを特徴とする電子機器。
【請求項１１】
記憶装置に対する制御コマンドの種別に対応したブロック毎に複数のコマンド設定情報が登録されたコマンドテーブルに対して、ブロックに対応したテーブルインデックスを指定する手段と、
前記テーブルインデックスにより特定されるブロックのコマンド設定情報を、前記記憶装置にアクセスするための制御装置の制御レジスタを設定することで前記制御レジスタの設定情報に基づく前記制御コマンドを発行する制御を行う手段としてコンピュータを機能させ、
各コマンド設定情報が、
前記制御コマンドの種類を指定するコマンド指定情報と、前記制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含むことを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記各コマンド設定情報が、前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと前記パラメータ情報との組み合わせごとに設けられ、
前記テーブルインデックスと前記コマンドインデックスとが異なることを特徴とするプログラム。
【請求項１３】
請求項１１又は１２において、
前記複数のコマンド設定情報は、
第１の規格で規定された制御コマンドに対応したコマンド設定情報と、第２の規格で規定された制御コマンドに対応したコマンド設定情報とを含むことを特徴とするプログラム。
【請求項１４】
請求項１１乃至１３のいずれかにおいて、
前記各コマンド設定情報が、
前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと、前記パラメータ情報としてのレスポンスタイプとを含み、
前記レスポンスタイプが、
前記制御コマンドに対応する前記記憶装置からのレスポンスシーケンスを指定する情報であることを特徴とするプログラム。
【請求項１５】
請求項１１乃至１４のいずれかにおいて、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報が格納される順番が、当該コマンド指定情報及び前記パラメータ情報が設定される前記制御装置の制御レジスタを特定するアドレスの順番と同じであることを特徴とするプログラム。
【請求項１６】
請求項１１乃至１５のいずれかにおいて、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報の各情報のビットの並びが、当該情報が設定される前記制御装置の制御レジスタのビットフィールドの並びと同じであることを特徴とするプログラム。
【請求項１７】
請求項１１乃至１６のいずれかにおいて、
前記記憶装置の規格又はバージョンの種類を判別し、その判別結果に基づいて前記テーブルインデックスを指定することを特徴とするプログラム。
【請求項１８】
請求項１１乃至１７のいずれかにおいて、
前記コマンドテーブルが、
ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格、ＳＤＩＯ（SD Input/Output）規格、又はＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した制御コマンドのコマンドインデックス及びレスポンスタイプと、コマンドの種類を指定するコマンドタイプ情報とを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御コマンド生成装置、情報処理装置、電子機器及びプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやその周辺機器（例えばプリンタ装置、スキャナ装置又は複合機）に限らず、携帯電話機、携帯情報端末（Personal Digital Assistant：ＰＤＡ）やオーディオプレーヤ等の携帯型の情報機器、ロボット装置、デジタルカメラ、ビデオカメラ、全地球測位システム（Global Positioning System：ＧＰＳ)装置、テレビ受信装置、プロジェクタ等の電子機器に、データストレージ用途にフラッシュメモリカードが使用される機会が多くなっている。
【０００３】
フラッシュメモリカードには、その用途に応じて、種々の規格、バージョンが規定されている。例えば動画データ、静止画データ又は音楽データを携帯するために可搬性に優れ、大容量のフラッシュメモリとして、ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格に準拠したフラッシュメモリカード、又はＳＤＩＯ（SD Input/Output）規格に準拠したＩ／Ｏデバイスがある。また、例えば携帯機器や家庭用電化製品の小型化により小型のコネクタ形状や高速なデータ転送が可能なＨＤＤ装置として、ＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した記憶装置がある。
【０００４】
このように、携帯型のデータストレージ用途は今後もますます広がり、用途に応じた最適な規格が順次策定されていく傾向にある。
【０００５】
このようなフラッシュメモリカード等にアクセスするためには、その規格で規定されたコマンド（制御コマンド）を発行することで実現される。フラッシュメモリカードにアクセスするためにコマンドを発行する技術については、例えば特許文献１に開示されている。特許文献１には、コマンドの使用の追加や変更に対して対処が容易なデータプロセッサが開示されている。
【特許文献１】特開２００２−３４２２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された技術では、データプロセッサのインタフェース動作において、インタフェース制御対象機器の動作を制御するための第１の制御情報と、該インタフェース制御対象の機器との間のインタフェース動作を制御するための第２の制御情報とを対応させて、それぞれ別個に定義するようにしている。そのため、特許文献１に開示された技術では、インタフェース制御対象機器にアクセスするためのコマンドや機能や動作に追加や変更があったときに第１又は第２の制御情報を修正できるようにしている。
【０００７】
しかしながら、特許文献１の技術であっても、上記のようなフラッシュメモリカードをアクセスするためのコマンドの種類が多く、コマンドを発行するたびにコマンドの種類を判定する必要がある。従って、特許文献１に開示された技術では、コマンドの種類の判定種類が多くなり、制御の複雑化又はプログラムコードの冗長化を招くという問題がある。特に、フラッシュメモリカードをアクセスするためのコマンドには、互いに互換性のあるＭＭＣ規格やＳＤ規格等の種々の規格が策定されている上に、各規格におけるバージョンの相違も判別する必要がある。このため、コマンドの種類の判別処理が複雑化し、結果的にフラッシュメモリカードへのアクセスのパフォーマンスを低下させる。
【０００８】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、種々の規格が混在してもコマンド発行の処理を簡素化できる制御コマンド生成装置、情報処理装置、電子機器及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明は、
記憶装置に対する制御コマンドを生成するための制御コマンド生成装置であって、
前記制御コマンドの種別に対応したブロック毎に複数のコマンド設定情報が登録されたコマンドテーブルと、
ブロックに対応したテーブルインデックスを指定し、該テーブルインデックスにより特定されるブロックのコマンド設定情報を、前記記憶装置にアクセスするための制御装置の制御レジスタに設定することで該制御レジスタの設定情報に基づく前記制御コマンドを発行する制御を行うコマンド情報設定部とを含み、
各コマンド設定情報が、
前記制御コマンドの種類を指定するコマンド指定情報と、前記制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含む制御コマンド生成装置に関係する。
【００１０】
本発明においては、予めコマンド設定情報が登録されたコマンドテーブルを用意し、コマンドテーブルの中からテーブルインデックスを指定することで、複雑なフォーマットで種々の制御コマンドのコマンド設定情報が取り出される。従って、本発明によれば、複雑なフォーマットで種々の制御コマンドが存在した場合でも、制御コマンド毎に必要なパラメータ情報を収集して制御コマンドの生成処理を行う必要がなくなり、制御コマンドの生成処理の簡素化を図ることができる。
【００１１】
また本発明に係る制御コマンド生成装置では、
前記各コマンド設定情報が、前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと前記パラメータ情報との組み合わせごとに設けられ、
前記テーブルインデックスと前記コマンドインデックスとが異なってもよい。
【００１２】
本発明においては、テーブルインデックスの番号とコマンドインデックスの番号とを揃える必要がない。従って、本発明によれば、テーブルインデックスを把握しておけば、コマンド設定情報が登録されるブロックを新規に追加したり変更したりしても、制御コマンドの生成処理が複雑化することがなくなる。
【００１３】
また本発明に係る制御コマンド生成装置では、
前記複数のコマンド設定情報は、
第１の規格で規定された制御コマンドに対応したコマンド設定情報と、第２の規格で規定された制御コマンドに対応したコマンド設定情報とを含むことができる。
【００１４】
本発明によれば、複数の規格が混在し、各規格毎に制御コマンドが複雑に規定されている場合であっても、コマンドテーブルのテーブルインデックスを指定するだけでよいので、制御コマンドの生成処理を大幅に簡素化でき、結果として記憶装置へのアクセスのパフォーマンスの低下も防止できる。
【００１５】
また本発明に係る制御コマンド生成装置では、
前記各コマンド設定情報が、
前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと、前記パラメータ情報としてのレスポンスタイプとを含み、
前記レスポンスタイプが、
前記制御コマンドに対応する前記記憶装置からのレスポンスシーケンスを指定する情報であってもよい。
【００１６】
また本発明に係る制御コマンド生成装置では、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報が格納される順番が、当該コマンド指定情報及び前記パラメータ情報が設定される前記制御装置の制御レジスタを特定するアドレスの順番と同じであってもよい。
【００１７】
また本発明に係る制御コマンド生成装置では、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報の各情報のビットの並びが、当該情報が設定される前記制御装置の制御レジスタのビットフィールドの並びと同じであってもよい。
【００１８】
上記のいずれかの発明によれば、コマンド設定情報の各情報に対して加工処理やビット操作を行うことなく、制御装置の制御レジスタにそのまま設定できる。従って、制御コマンドの生成処理の簡素化を図ることができる。
【００１９】
また本発明に係る制御コマンド生成装置では、
前記コマンド情報設定部が、
前記記憶装置の規格又はバージョンの種類を判別し、その判別結果に基づいて前記テーブルインデックスを指定することができる。
【００２０】
本発明によれば、規格やバージョンが混在する制御コマンドの生成処理を簡素化できる。
【００２１】
また本発明に係る制御コマンド生成装置では、
前記コマンドテーブルが、
ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格、ＳＤＩＯ（SD Input/Output）規格、又はＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した制御コマンドのコマンドインデックス及びレスポンスタイプと、コマンドの種類を指定するコマンドタイプ情報とを含むことができる。
【００２２】
本発明によれば、市場に流通するＭＭＣ規格、ＳＤ規格、ＳＤＩＯ規格のみならずＣＥ−ＡＴＡ規格の制御コマンドの生成処理を簡素化できる。
【００２３】
また本発明は、
記憶装置にアクセスするための情報処理装置であって、
制御レジスタを有し、該制御レジスタの設定情報に基づいて前記記憶装置にアクセスするための制御コマンドを発行する制御装置と、
前記制御装置の制御レジスタに対して前記コマンド設定情報を設定する上記のいずれか記載の制御コマンド生成装置とを含む情報処理装置に関係する。
【００２４】
本発明によれば、種々の規格が混在してもコマンド発行の処理を簡素化できる制御コマンド生成装置が適用された情報処理装置を提供できる。
【００２５】
また本発明は、
前記記憶装置と、
上記記載の情報処理装置とを含む電子機器に関係する。
【００２６】
本発明によれば、種々の規格が混在してもコマンド発行の処理を簡素化できる制御コマンド生成装置が適用された電子機器を提供できる。
【００２７】
また本発明は、
記憶装置に対する制御コマンドの種別に対応したブロック毎に複数のコマンド設定情報が登録されたコマンドテーブルに対して、ブロックに対応したテーブルインデックスを指定する手段と、
前記テーブルインデックスにより特定されるブロックのコマンド設定情報を、前記記憶装置にアクセスするための制御装置の制御レジスタを設定することで前記制御レジスタの設定情報に基づく前記制御コマンドを発行する制御を行う手段としてコンピュータを機能させ、
各コマンド設定情報が、
前記制御コマンドの種類を指定するコマンド指定情報と、前記制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含むプログラムに関係する。
【００２８】
また本発明に係るプログラムでは、
前記各コマンド設定情報が、前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと前記パラメータ情報との組み合わせごとに設けられ、
前記テーブルインデックスと前記コマンドインデックスとが異なってもよい。
【００２９】
また本発明に係るプログラムでは、
前記複数のコマンド設定情報は、
第１の規格で規定された制御コマンドに対応したコマンド設定情報と、第２の規格で規定された制御コマンドに対応したコマンド設定情報とを含むことができる。
【００３０】
また本発明に係るプログラムでは、
前記各コマンド設定情報が、
前記制御コマンドの種類を指定するための前記コマンド指定情報としてのコマンドインデックスと、前記パラメータ情報としてのレスポンスタイプとを含み、
前記レスポンスタイプが、
前記制御コマンドに対応する前記記憶装置からのレスポンスシーケンスを指定する情報であってもよい。
【００３１】
また本発明に係るプログラムでは、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報が格納される順番が、当該コマンド指定情報及び前記パラメータ情報が設定される前記制御装置の制御レジスタを特定するアドレスの順番と同じであってもよい。
【００３２】
また本発明に係るプログラムでは、
前記各コマンド設定情報のコマンド指定情報及び前記パラメータ情報の各情報のビットの並びが、当該情報が設定される前記制御装置の制御レジスタのビットフィールドの並びと同じであってもよい。
【００３３】
また本発明に係るプログラムでは、
前記記憶装置の規格又はバージョンの種類を判別し、その判別結果に基づいて前記テーブルインデックスを指定することができる。
【００３４】
また本発明に係るプログラムでは、
前記コマンドテーブルが、
ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格、ＳＤＩＯ（SD Input/Output）規格、又はＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠した制御コマンドのコマンドインデックス及びレスポンスタイプと、コマンドの種類を指定するコマンドタイプ情報とを含むことができる。
【００３５】
上記のいずれかの発明によれば、種々の規格が混在してもコマンド発行の処理を簡素化できる、記憶装置に対して制御コマンドを生成するためのプログラムを提供できる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００３７】
１．  情報処理装置
図１に、本実施形態における情報処理装置が適用された電子機器の構成例のブロック図を示す。
【００３８】
図１の構成を有する電子機器としては、例えばパーソナルコンピュータ、その周辺機器（例えばプリンタ装置、スキャナ装置又は複合機）、携帯電話機、携帯情報端末、オーディオプレーヤ、ロボット装置、デジタルカメラ、ビデオカメラ、ＧＰＳ装置、テレビ受信装置、プロジェクタ等がある。
【００３９】
電子機器１０は、情報処理装置としてのホストシステム１００と、メモリカード（広義には記憶装置）２００とを含み、ホストシステム１００とメモリカード２００とがカードバス２０を介して接続されている。電子機器１０では、メモリカード２００に対する制御コマンドを発行することにより、メモリカード２００にデータを書き込んだり、メモリカード２００からデータを読み出したりすることができる。メモリカード２００は、例えばフラッシュメモリカード、Ｉ／ＯデバイスやＨＤＤ装置であってもよい。
【００４０】
ホストシステム１００は、中央演算処理装置（Central Processing Unit：ＣＰＵ）１１０、メモリ１２０及びカードコントローラ１３０を含む。ＣＰＵ１１０、メモリ１２０及びカードコントローラ１３０は、システムバス１２２を介して接続されている。従って、ＣＰＵ１１０は、システムバス１２２を介してメモリ１２０又はカードコントローラ１３０にアクセスできる。そして、ＣＰＵ１１０が、メモリ１２０に格納されたプログラムを読み込んで該プログラムに対応した処理を実行することにより、メモリカード２００に対して制御コマンドを発行する制御を行う制御コマンド生成装置としての機能を実現する。カードコントローラ１３０とメモリカード２００とは、カードバス２０を介して接続され、ＣＰＵ１１０が、カードコントローラ１３０からメモリカード２００に対して発行する制御コマンドを生成する制御を行う。メモリカード２００を「デバイス」と定義すると、カードコントローラ１３０はホスト側を制御する「ホストコントローラ」と定義することができる。
【００４１】
カードバス２０は、転送クロックＣＬＫが伝送されるクロックライン、制御コマンドＣＭＤ及びレスポンスが伝送されるコマンドライン、例えば４ビット（又は８ビット）の転送データＤＡＴ０−ＤＡＴ３が伝送されるデータラインを有する。本実施形態では、カードコントローラ１３０が、転送クロックＣＬＫに同期してコマンドＣＭＤを発行する。そして、転送クロックＣＬＫに同期して例えば４ビットの転送データＤＡＴ０−ＤＡＴ３が送受信される。また、コマンドＣＭＤの種類によっては、メモリカード２００が制御コマンドＣＭＤに対するレスポンスとして、例えばコマンドラインを用いてレスポンスを返すことができる。
【００４２】
以下では、メモリカード２００がＳＤ規格に準拠したフラッシュメモリカードであり、カードバス２０にはＳＤ規格に準拠したシーケンスで制御コマンドやレスポンス、転送データの送受信が行われるものとする。
【００４３】
図２に、本実施形態における制御コマンドの説明図を示す。
【００４４】
制御コマンドは、例えば４８ビット長のデータであり、スタートビット「０」、カードコントローラ１３０によりセットされる転送ビット「１」に続き、４５ビットのコマンドデータ、エンドビット「１」で構成されている。コマンドデータの末尾の７ビットは、ＣＲＣ（Cyclic Redundancy Check）データである。コマンドデータは、コマンド、アドレス情報やパラメータ情報を含むことができ、図２のような構造のデータがコマンドラインを伝送される。
【００４５】
なお、メモリカード２００は、例えば転送ビットに「０」を設定することで、上記のコマンドラインを介してレスポンスをカードコントローラ１３０に返信できる。
【００４６】
図３に、図１のカードコントローラ１３０の構成例のブロック図を示す。
【００４７】
カードコントローラ１３０は、制御インタフェース（InterFace：Ｉ／Ｆ）回路１３２、ＦＩＦＯ（First-In First-Out)Ｉ／Ｆ回路１３４、コントローラ制御レジスタ部１３６、クロック制御部１３８、制御ロジック部１４０を含む。制御ロジック部１４０は、コマンドシーケンサ１４２、データシーケンサ１４４を含む。
【００４８】
制御Ｉ／Ｆ回路１３２は、システムバス１２２を介してＣＰＵ１１０やメモリ１２０との間で送受信される制御信号や制御データのインタフェース処理を行う。ＣＰＵ１１０は、制御Ｉ／Ｆ回路１３２を介してコントローラ制御レジスタ部１３６の各制御レジスタに制御データを設定できる。
【００４９】
ＦＩＦＯＩ／Ｆ回路１３４は、システムバス１２２を介してＣＰＵ１１０やメモリ１２０との間で送受信される制御信号や制御データのインタフェース処理を行う。システムバス１２２を介してメモリ１２０から読み出されたデータは、ＦＩＦＯＩ／Ｆ回路１３４においてバッファリングされた後、制御ロジック部１４０に供給される。また、メモリカード２００から読み出されたデータは、ＦＩＦＯＩ／Ｆ回路１３４においてバッファリングされた後に、システムバス１２２を介してＣＰＵ１１０又はメモリ１２０に出力される。
【００５０】
コントローラ制御レジスタ部１３６は、１又は複数の制御レジスタを有し、各制御レジスタにはカードコントローラ１３０を制御するための制御データが設定される。コントローラ制御レジスタ部１３６の各制御レジスタに設定された制御データに対応した制御信号に基づいて、カードコントローラ１３０の各部が制御される。
【００５１】
クロック制御部１３８は、カードコントローラ１３０の各部にクロックを供給すると共に、カードバス２０を構成するクロックラインに転送クロックＣＬＫを出力する制御を行う。
【００５２】
コマンドシーケンサ１４２は、コントローラ制御レジスタ部１３６の制御レジスタの制御データに基づいて、カードバス２０を構成するコマンドラインを介してメモリカード２００に対してコマンドを発行する制御を行う。
【００５３】
データシーケンサ１４４は、コントローラ制御レジスタ部１３６の制御レジスタの制御データに基づいて、カードバス２０を構成するデータラインを介してメモリカード２００との間でデータを送受信する制御を行う。
【００５４】
図４に、図３のコントローラ制御レジスタ部１３６の構成の概要を示す。
【００５５】
コントローラ制御レジスタ部１３６は、コマンド指定レジスタ１５０、引数設定レジスタ１５２、コマンドタイプ設定レジスタ１５４、レスポンス指定レジスタ１５６、転送タイプ設定レジスタ１５８、転送カウント数設定レジスタ１６０を含むことができる。コントローラ制御レジスタ部１３６のコマンド指定レジスタ１５０、引数設定レジスタ１５２、コマンドタイプ設定レジスタ１５４、レスポンス指定レジスタ１５６、転送タイプ設定レジスタ１５８及び転送カウント数設定レジスタ１６０の各制御レジスタにはアドレスが割り当てられており、例えば該アドレスをインクリメント（又は所定のアドレス値を加算）するだけ各制御レジスタに順番にアクセスできるようになっている。
【００５６】
ＣＰＵ１１０は、システムバス１２２を介して、メモリカード２００に対して発行するコマンドの種類を指定するコマンド指定情報と該コマンドのパラメータであるパラメータ情報とをコントローラ制御レジスタ部１３６に設定することができる。パラメータ情報は、引数情報、コマンドタイプ情報、レスポンス指定情報、転送タイプ情報、転送カウント数情報を含むことができる。
【００５７】
コマンド指定情報は、コマンド指定レジスタ１５０に設定される。コマンド指定レジスタ１５０に設定されたコマンド指定情報に基づいて、制御信号ｃｍｄ＿ｉｎｄｅｘが出力される。制御信号ｃｍｄ＿ｉｎｄｅｘにより指定されるコマンドインデックスが、ＳＤ規格におけるコマンド（例えばSD Specifications, Part 1, Physical Layer Specification Version 2.00, May 9, 2006, 4.7.4 Detailed Command Descriptionを参照）のインデックスとなる。例えば制御信号ｃｍｄ＿ｉｎｄｅｘにより指定されるコマンドインデックスが「０」を指定するとき、カードコントローラ１３０は、メモリカード２００に対して、アイドルステートに遷移させるコマンドＣＭＤ０を発行する制御を行う。
【００５８】
パラメータ情報のうち引数情報は、引数設定レジスタ１５２に設定される。引数設定レジスタ１５２に設定された引数情報に基づいて、制御信号ａｒｇが出力される。制御信号ａｒｇにより指定される引数情報が、ＳＤ規格におけるコマンドの引数となる。制御信号ａｒｇにより指定される引数を用いて、カードコントローラ１３０は、メモリカード２００に対して、上記の引数を有する例えばコマンドＣＭＤ２（コマンドインデックスが例えば「２」）を発行する制御を行う。
【００５９】
パラメータ情報のうちコマンドタイプ情報が、コマンドタイプ設定レジスタ１５４に設定される。コマンドタイプ設定レジスタ１５４に設定されたコマンドタイプ情報に基づいて、制御信号ｔｙｐｅが出力される。コマンドタイプ情報は、停止コマンドやＳＤ規格等のＡＣＭＤ等のコマンド種類を指定する情報であって、コマンドに対応した制御シーケンスを指定する情報である。
【００６０】
パラメータ情報のうちレスポンス指定情報が、レスポンス指定レジスタ１５６に設定される。レスポンス指定レジスタ１５６に設定されたレスポンス指定情報に基づいて、制御信号ｒｅｓｐが出力される。制御信号ｒｅｓｐにより指定されるレスポンス指定情報が、コマンドのレスポンスタイプとなる。レスポンスタイプは、レスポンスの有無だけでなく、レスポンスがある場合のレスポンスシーケンスの種類を特定する情報である。ここで、例えばＳＤ規格においてＲ１以外のレスポンスタイプが指定される場合であっても、シーケンスがＲ１と実質的に同じであるＲ６やＲ７のレスポンスタイプをＲ１として指定すればよい。例えば制御信号ｒｅｓｐにより指定されるレスポンス指定情報が「Ｒ１ｂ」を指定（コマンドインデックスが例えば「７」）するとき、カードコントローラ１３０は、メモリカード２００に対して、例えばメモリカード２００がビジー状態となるレスポンスを受け取る、例えばコマンドＣＭＤ７を発行する制御を行う。
【００６１】
パラメータ情報のうち転送タイプが、転送タイプ設定レジスタ１５８に設定される。転送タイプ設定レジスタ１５８に設定された転送タイプ情報に基づいて、制御信号ｔｒａｎ＿ｔｙｐｅが出力される。制御信号ｔｒａｎ＿ｔｙｐｅにより指定される転送タイプ情報が、ＳＤ規格におけるコマンドの転送タイプとなる。転送タイプ情報は、Ｓｉｎｇｌｅ転送、Ｍｕｌｉｐｌｅ転送、Ｓｔｒｅａｍ転送、Ｉｎｆｉｎｉｔｅ転送の他、転送方向や制御コマンドＣＭＤ１２を伴うか否かの情報を含む。
【００６２】
パラメータ情報のうち転送カウント数情報が、転送カウント数設定レジスタ１６０に設定される。転送カウント数設定レジスタ１６０に設定された転送カウント数に基づいて、制御信号ｃｎｔが出力される。制御信号ｃｎｔにより指定される転送カウント数に基づいて、カードコントローラ１３０は、メモリカード２００との間のデータ転送を繰り返す。
【００６３】
カードコントローラ１３０は、図４に示すようなコントローラ制御レジスタ部１３６の各制御レジスタの制御データを用いて、メモリカード２００に対して制御コマンドを発行することができる。
【００６４】
図５に、図１のメモリカード２００の構成例のブロック図を示す。
【００６５】
メモリカード２００は、カードＩ／Ｆ回路２１０、カードＩ／Ｆ制御回路２２０、カード制御レジスタ部２３０、メモリＩ／Ｆ回路２４０、メモリコア部２５０を含む。
【００６６】
カードＩ／Ｆ回路２１０は、カードバス２０を伝送される信号のインタフェース処理を行う。カードＩ／Ｆ制御回路２２０は、カードＩ／Ｆ回路２１０を制御してカードバス２０に信号を出力する制御を行ったり、カードバス２０からの信号を入力する制御を行ったりする。
【００６７】
カード制御レジスタ部２３０は、複数の制御レジスタを有する。例えば、カード制御レジスタ部２３０は、動作条件レジスタ（Operation Conditions Resister：ＯＣＲ）、カード識別レジスタ（Card IDentification register：ＣＩＤ）、カード特性データレジスタ（Card-Specific Data register：ＣＳＤ）、相対カードアドレスレジスタ（Relative Card Address register：ＲＣＡ）、ドライバステージレジスタ（Driver Stage Register:ＤＳＲ）、ＳＤコンフィギュレーションレジスタ（SD Configuration Register：ＳＣＲ）、ＳＤステータスレジスタ（SD Status Register：ＳＳＲ）、カードステータスレジスタ（Card Status Register：ＣＳＲ)等を含む。カードＩ／Ｆ制御回路２２０は、カード制御レジスタ部２３０の設定データに基づいてメモリカード２００の各部を制御すると共に、その制御結果をカード制御レジスタ部２３０に格納する制御を行う。
【００６８】
メモリＩ／Ｆ回路２４０は、カードＩ／Ｆ制御回路２２０の制御により、メモリコア部２５０のメモリ素子にデータを書き込んだり、メモリコア部２５０のメモリ素子からデータを読み出したりする制御を行う。
【００６９】
メモリコア部２５０は、複数のメモリ素子を有する。メモリＩ／Ｆ回路２４０は、予め割り当てられたアドレスに対応したメモリ素子からデータを読み出したり、該アドレスに対応したメモリ素子にデータを書き込んだりすることができる。
【００７０】
２．  制御コマンド生成装置
本実施形態におけるホストシステム１００は、図５に示す構成のメモリカード２００に対し、カードバス２０を介して制御コマンドを発行することでメモリカード２００へのアクセスを行う。このような制御コマンドを生成する制御は、ホストシステム１００のＣＰＵ１１０及びメモリ１２０によって行われる。従って、本実施形態における制御コマンド生成装置の機能は、ホストシステム１００のＣＰＵ１１０及びメモリ１２０により実現される。
【００７１】
図６に、本実施形態における制御コマンド生成装置の構成の概要を示す。
【００７２】
本実施形態における制御コマンド生成装置３００は、コマンドテーブル３１０と、コマンド情報設定部３２０とを含む。コマンドテーブル３１０には、各ブロックが、記憶装置としてのメモリカード２００に対して発行する制御コマンドの種別に対応した複数のブロックを有し、ブロック毎にコマンド設定情報が登録されている。従って、コマンドテーブル３１０には、ブロック毎に登録された複数のコマンド設定情報が予め登録されている。各コマンド設定情報は、制御コマンドの種類を指定するコマンド指定情報と、制御コマンドに対応した制御シーケンスタイプを指定するパラメータ情報とを含む。より具体的には、各コマンド設定情報が、コマンド指定情報としてのコマンドインデックスと、パラメータ情報としてのレスポンスタイプとを含み、レスポンスタイプが、制御コマンドに対応するメモリカード２００（記憶装置）からのレスポンスシーケンスを指定する情報である。
【００７３】
各ブロックには、テーブルインデックスが割り当てられている。コマンド情報設定部３２０は、ブロックに対応したテーブルインデックスを指定し、該テーブルインデックスにより特定されるブロックのコマンド設定情報を、カードコントローラ１３０（記憶装置にアクセスするための制御装置）の制御レジスタに設定することで該制御レジスタの設定情報に基づく制御コマンドを発行する制御を行う。
【００７４】
コマンドテーブル３１０の機能は、図１のメモリ１２０によって実現される。コマンド情報設定部３２０の機能は、図１のＣＰＵ１１０及びメモリ１２０によって実現される。即ち、メモリ１２０に格納されたプログラムを読み込んだＣＰＵ１１０が該プログラムに対応した処理を実行することでコマンド情報設定部３２０の機能を実現する。
【００７５】
コマンド情報設定部３２０は、コマンド情報抽出部３２２と、コマンド発行制御部３２４とを含むことができる。コマンド情報抽出部３２２は、テーブルインデックスを指定してコマンドテーブル３１０から該テーブルインデックスに対応するブロックのコマンド設定情報を抽出する。コマンド発行制御部３２４は、コマンド情報抽出部３２２により抽出されたコマンド設定情報を、そのままカードコントローラ１３０のコントローラ制御レジスタ部１３６の制御レジスタに設定する。こうすることで、コマンド情報設定部３２０は、カードコントローラ１３０の制御レジスタの設定情報に基づく制御コマンドを発行する制御を行うことができる。
【００７６】
このように、予め登録されたコマンドテーブル３１０の中からテーブルインデックスを指定することで、複雑なフォーマットで種々の制御コマンドが存在した場合でも、制御コマンド毎に必要なパラメータ情報を収集して制御コマンドの生成処理を行う必要がなくなる。
【００７７】
図７に、図６のコマンドテーブル３１０の構成の概要を示す。
【００７８】
図７に示すように、コマンドテーブル３１０の各ブロックにはテーブルインデックスが割り当てられている。そして、ブロック毎に、コマンドのコマンド設定情報が登録される。
【００７９】
図７では、例えばテーブルインデックス「０」に対応するブロックに、ＳＤ規格の制御コマンドＣＭＤ０を発行するためのコマンド設定情報が登録されている。同様に、例えばテーブルインデックス「１」に対応するブロックに、ＳＤ規格の制御コマンドＣＭＤ１を発行するためのコマンド設定情報が登録されている。また、同様に、例えばテーブルインデックス「３」に対応するブロックに、ＭＭＣ規格の制御コマンドＣＭＤ３を発行するためのコマンド設定情報が登録され、テーブルインデックス「４」に対応するブロックに、ＳＤ規格の制御コマンドＣＭＤ３を発行するためのコマンド設定情報が登録される。
【００８０】
そして、図７に示すように、テーブルインデックスとコマンドインデックスとが異なることが望ましい。即ち、テーブルインデックスの番号とコマンドインデックスの番号とを揃える必要がない。こうすることで、テーブルインデックスを把握しておけば、コマンド設定情報が登録されるブロックを新規に追加したり変更したりしても、制御コマンドの生成処理が複雑化することがなくなる。
【００８１】
更に、コマンドテーブル３１０には、種々の規格の制御コマンドのコマンド設定情報が混在して各テーブルに登録されていてもよい。即ち、第１の規格で規定された制御コマンドに対応したコマンド設定情報と、第２の規格で規定された制御コマンドに対応したコマンド設定情報とを含むことが望ましい。図７に示すように例えばＳＤ規格の制御コマンド、ＳＤ規格と下位互換のＭＭＣ規格の制御コマンド等の他、更にＳＤＩＯ規格の制御コマンドやＣＥ−ＡＴＡ規格の制御コマンドが混在することが望ましい。こうすることで、複数の規格のうちいずれかの規格の制御コマンドを発行するために、テーブルインデックスを指定するだけでよいので、従来の制御コマンドの生成処理に比べて処理の簡素化やプログラムコード量の削減を図ることができる。
【００８２】
図８に、図７のコマンドテーブルの各ブロックに登録されるコマンド設定情報の一例を示す。
【００８３】
各ブロックには、コマンド設定情報が登録される。そして、各コマンド設定情報は、コマンド指定情報としてのコマンドインデックスとパラメータ情報との組み合わせごとに設けられる。各ブロックには、コマンドインデックスの他に、コマンド引数情報、コマンドタイプ（コマンドタイプ情報）、レスポンスタイプ、レスポンスデータポインタ、転送タイプ情報、転送カウント数情報が登録される。レスポンスデータポインタは、メモリカード２００からのレスポンスのデータが格納されるメモリ１２０の記憶領域を指定する情報である。レスポンスデータポインタを除く、コマンド指定情報及びパラメータ情報は、そのままコントローラ制御レジスタ部１３６の各制御レジスタに設定される。
【００８４】
ここで、各コマンド設定情報のコマンド指定情報及びパラメータ情報が格納される順番が、当該コマンド指定情報及びパラメータ情報が設定されるカードコントローラ１３０のコントローラ制御レジスタ部１３６の制御レジスタを特定するアドレスの順番と同じであることが望ましい。また、各コマンド設定情報のコマンド指定情報及びパラメータ情報の各情報のビットの並びが、当該情報が設定されるカードコントローラ１３０のコントローラ制御レジスタ部１３６の制御レジスタのビットフィールドの並びと同じであることが望ましい。
【００８５】
こうすることで、図８の各情報は、レスポンスデータポインタを除き、加工処理やビット操作を行うことなく、図４のコントローラ制御レジスタ部１３６の各制御レジスタにそのまま設定できる。従って、制御コマンドの生成処理の簡素化を図ることができる。
【００８６】
３．  ホストシステムの動作例
次に、本実施形態におけるホストシステム１００の動作例について説明する。
【００８７】
図９に、図１のホストシステム１００の処理例のフロー図を示す。
【００８８】
図１に示すメモリ１２０に図９の処理を実行するためのプログラムが格納されており、ＣＰＵ１１０がメモリ１２０からプログラムを読み出して該プログラムに対応した処理を実行することで、ＣＰＵ１１０がカードコントローラ１３０を制御して図９の処理が行われるようになっている。また図９では、所与の第１の処理（例えばメモリカード２００に格納されたデータが必要な情報処理）と所与の第２の処理（例えばメモリカード２００から読み出したデータを用いた情報処理）との間で、ホストシステム１００が制御コマンドの発行処理を行うものとする。
【００８９】
まず、ＣＰＵ１１０は、メモリ１２０から読み出したプログラムを実行することで第１の処理を行う（ステップＳ１０）。
【００９０】
次に、ＣＰＵ１１０は、制御コマンドの発行処理を行う（ステップＳ１１）。より具体的には、メモリ１２０に格納されたコマンドテーブルに対してテーブルインデックスを指定し、該テーブルインデックスで指定されたブロックのコマンド設定情報をカードコントローラ１３０のコントローラ制御レジスタ部１３６の各制御レジスタに設定する。そして、ＣＰＵ１１０は、制御コマンドの発行指示（コマンドＧｏ）を行うことで、カードバス２０を介してコントローラ制御レジスタ部１３６の制御レジスタの内容に対応した制御コマンドが出力される。
【００９１】
カードコントローラ１３０は、制御コマンドの発行後、当該制御コマンドに対応した制御シーケンスでメモリカード２００との間でクロックライン、コマンドライン及びデータラインの制御を行い、当該制御コマンドの終了をＣＰＵ１１０に対して割り込み通知する。更にカードコントローラ１３０は、カードバス２０を介したメモリカード２００との間のデータ転送の終了をＣＰＵ１１０に対して割り込み通知する。カードコントローラ１３０は、例えばメモリカード２００から読み出したデータを順次メモリ１２０に格納する制御を行う。
【００９２】
ステップＳ１１に続いて、ＣＰＵ１１０は、カードコントローラ１３０からの制御コマンドの終了割り込みを監視しており（ステップＳ１２）、制御コマンドの終了割り込みが通知されると、カードコントローラ１３０からの転送終了割り込みを監視する（ステップＳ１３）。
【００９３】
その後、ＣＰＵ１１０は、ステップＳ１３において転送終了が通知されると、ＣＰＵ１１０は、メモリ１２０に格納されたメモリカード２００からの読み出しデータを用いて第２の処理を行い（ステップＳ１４）、一連の処理を終了する（エンド）。
【００９４】
図１０に、図９の制御コマンド発行処理の処理例のフロー図を示す。
【００９５】
メモリ１２０に図１０の処理を実行するためのプログラムが格納されており、ＣＰＵ１１０がメモリ１２０からプログラムを読み出して該プログラムに対応した処理を実行することで、ＣＰＵ１１０がカードコントローラ１３０を制御して図１０の処理が行われるようになっている。
【００９６】
ＣＰＵ１１０は、メモリカード２００のカード規格とそのバージョンの判別処理を行う（ステップＳ２０）。この判別処理は、例えば電源投入後のメモリカード２００の初期化シーケンスで行われる。これは、カード規格やバージョンに応じて制御コマンドの種類（パラメータ情報やレスポンスシーケンス等）が異なるからである。
【００９７】
ステップＳ２０において規格とバージョンが判別すると、判別した規格とバージョンとに基づいて発行したい制御コマンドに対応したテーブルインデックスをメモリ１２０のコマンドテーブルに対して指定し、ＣＰＵ１１０は、上述のようにカードコントローラ１３０に対して制御コマンドを発行する制御を行い（ステップＳ２１）、一連の処理を終了する（エンド）。
【００９８】
図１１に、図１０のカード規格及びバージョンの判別処理例のフロー図を示す。
【００９９】
メモリ１２０に図１１の処理を実行するためのプログラムが格納されており、ＣＰＵ１１０がメモリ１２０からプログラムを読み出して該プログラムに対応した処理を実行することで、ＣＰＵ１１０がカードコントローラ１３０を制御して図１１の処理が行われるようになっている。即ち、カード規格やバージョンを判別する目的で、制御コマンドの発行処理が行われる。図１１の制御コマンドの発行の度に、上述のようにコマンドテーブルを用いた発行制御が行われる。
【０１００】
まず、ＣＰＵ１１０は、制御コマンドＣＭＤ５を発行する制御を行う（ステップＳ２５）。制御コマンドＣＭＤ５は、ＳＤＩＯ規格で規定された制御コマンドである。制御コマンドＣＭＤ５に対してメモリカード２００からレスポンスがあるとき（ステップＳ２６：Ｙ）、ＣＰＵ１１０は、メモリカード２００の規格をＳＤＩＯ規格と判断し（ステップＳ２７）、一連の処理終了する（エンド）。
【０１０１】
ステップＳ２６において、制御コマンドＣＭＤ５に対してメモリカード２００からレスポンスがないとき（ステップＳ２６：Ｎ）、ＣＰＵ１１０は、ＳＤ規格の制御コマンドＣＭＤ８を発行する制御を行う（ステップＳ３０）。制御コマンドＣＭＤ８は、カードコントローラ１３０の電源情報等のメモリカードインタフェース条件を問い合わせるコマンドである。制御コマンドＣＭＤ８に対してメモリカード２００からレスポンスがあるとき（ステップＳ３１：Ｙ）、ＣＰＵ１１０は、メモリカード２００の規格及びバージョンをＳＤ２．０規格と判断し（ステップＳ３２）、一連の処理を終了する（エンド）。
【０１０２】
次に、ステップＳ３１において、制御コマンドＣＭＤ８に対してメモリカード２００からレスポンスがないとき（ステップＳ３１：Ｎ）、ＣＰＵ１１０が、制御コマンドＡＣＭＤ４１を発行する制御を行う（ステップＳ３３）。制御コマンドＡＣＭＤ４１は、動作条件レジスタを読み出し、カードコントローラ１３０が大容量カードをサポートしているか否かを通知するコマンドである。制御コマンドＡＣＭＤ４１に対してメモリカード２００からレスポンスがあるとき（ステップＳ３４：Ｙ）、ＣＰＵ１１０は、ＳＣＲレジスタを読み出して（ステップＳ３５）、バージョン情報を取り出し、ＳＤ１．Ｘ規格（ＳＤ１．０規格かＳＤ１．１０規格）を判別して（ステップＳ３６）、一連の処理を終了する（エンド）。
【０１０３】
ステップＳ３４において、制御コマンドＡＣＭＤ４１に対してメモリカード２００からレスポンスがないとき（ステップＳ３４：Ｎ）、ＣＰＵ１１０は、ＣＳＤレジスタを読み出して（ステップＳ３７）、バージョン情報を取り出し、ＭＭＣ規格のバージョンを判別して（ステップＳ３８）、一連の処理を終了する（エンド）。
【０１０４】
図１２に、図１０の制御コマンドの発行処理例のフロー図を示す。
【０１０５】
メモリ１２０に図１２の処理を実行するためのプログラムが格納されており、ＣＰＵ１１０がメモリ１２０からプログラムを読み出して該プログラムに対応した処理を実行することで、ＣＰＵ１１０がカードコントローラ１３０を制御して図１２の処理が行われるようになっている。上位アプリケーションからのコマンド発行指示があると、図１２の処理が行われる。
【０１０６】
ＣＰＵ１１０は、上位アプリケーションからの指示で発行したい制御コマンドに対応したコマンドテーブルのテーブルインデックスを指定し（ステップＳ４０）、該テーブルインデックスにより特定されるブロックのコマンド設定情報の中からコマンドインデックスをコントローラ制御レジスタ部１３６のコマンド指定レジスタ１５０に設定する（ステップＳ４１）。
【０１０７】
次に、ＣＰＵ１１０は、該テーブルインデックスにより特定されるブロックのコマンド設定情報の中から引数情報をコントローラ制御レジスタ部１３６の引数設定レジスタ１５２に設定し、コマンドタイプをコントローラ制御レジスタ部１３６のコマンドタイプ設定レジスタ１５４に設定し、レスポンスタイプをコントローラ制御レジスタ部１３６のレスポンス指定レジスタ１５６に設定する（ステップＳ４２）。また、ＣＰＵ１１０は、転送タイプ情報を転送タイプ設定レジスタ１５８に設定すると共に、転送カウント数情報を転送カウント数設定レジスタ１６０に設定する。
【０１０８】
次に、ＣＰＵ１１０は、カードコントローラ１３０のコントローラ制御レジスタ部１３６の図示しない制御コマンド発行指示レジスタをアクセスして制御コマンドの発行指示を行い（ステップＳ４４）、一連の処理を終了する（エンド）。
【０１０９】
図１３に、図１のカードコントローラ１３０のドライバ部の構成の概要を示す。
【０１１０】
図１３のドライバ部が、図３のカードコントローラ１３０に内蔵される。ドライバ部は、クロックラインを駆動して転送クロックＣＬＫを出力するドライバと、コマンドラインに接続される第１の入出力ドライバと、データラインに接続される第２の入出力ドライバとを含む。
【０１１１】
第１の入出力ドライバは、コマンドシーケンサ１４２によって制御されコマンドラインを駆動して制御コマンドを出力する出力ドライバと、コマンドラインを介して入力されるレスポンスを受信するための入力ドライバとを含む。コントローラ制御レジスタ部１３６の制御レジスタの内容に基づいてコマンドシーケンサ１４２によって生成された制御コマンドが、第１の入出力ドライバの出力ドライバによりコマンドラインに出力される。そして、該制御コマンドに対応してメモリカード２００から出力されたレスポンスが、第１の入出力ドライバの入力ドライバで受信される。
【０１１２】
第２の入出力ドライバは、データシーケンサ１４４によって制御されデータラインを駆動して転送データを出力する出力ドライバと、データラインを介して入力される転送データを受信するための入力ドライバとを含む。コントローラ制御レジスタ部１３６の制御レジスタの内容に基づいてＦＩＦＯＩ／Ｆ回路１３４からのデータをデータシーケンサ１４４の制御に基づいて、転送データとして第２の入出力ドライバの出力ドライバによりデータラインに出力される。そして、メモリカード２００から出力されたレスポンスが、第１の入出力ドライバの入力ドライバで受信される。
【０１１３】
図１４に、本実施形態におけるコマンドテーブルに登録されるコマンド設定情報の具体例を示す。
【０１１４】
コマンドテーブルは、複数のブロックを有し、各ブロックにはテーブルインデックスが割り当てられ、コマンド設定情報が登録されている。従って、テーブルインデックスに基づいてブロックのコマンド設定情報を特定できる。図１４では、コマンド設定情報として、コマンドインデックス、コマンドタイプ情報、レスポンスタイプ、引数転送サイズ、転送タイプが登録され、各項目の表記はＳＤ規格の仕様書に従っている。コマンドタイプ情報は、ＡＣＭＤか否かを示す情報と、停止コマンドか否かを示す情報とを含む。
【０１１５】
このように、コマンドテーブルは、ＭＭＣ（MultiMediaCard）規格、ＳＤ（Secure Digital）規格、ＳＤＩＯ（SD Input/Output）規格、又はＣＥ−ＡＴＡ（Consumer Electronics-AT Attachment）規格に準拠したコマンドのコマンドインデックス及びレスポンスタイプと、コマンドの種類を指定するコマンドタイプ情報とを含むことができる。また、テーブルインデックスの番号とコマンドインデックスの番号とが異なっている。更に、同一規格であってもバージョンが異なれば制御コマンドが異なる場合には、新たにブロックを追加することが望ましい。こうすることで、規格やそのバージョン毎に制御コマンドに必要なパラメータ情報を取り出す必要がなくなり、テーブルインデックスを指定すればよいので制御コマンドの生成処理を大幅に簡素化できる。
【０１１６】
図１５に、テーブルインデックスとして「０」を指定したときのカードコントローラ１３０の動作例のタイミング図を示す。
【０１１７】
なお、図１５では、コマンドシーケンサ１４２のステートとデータシーケンサ１４４のステートも図示している。
【０１１８】
テーブルインデックス「０」は、図１４において制御コマンドＣＭＤ０に対応する。そのため、テーブルインデックス「０」のコマンド設定情報がそのまま設定されたカードコントローラ１３０は、レスポンス無しタイプで制御コマンドの発行のみのシーケンスでカードバス２０を制御する。
【０１１９】
図１６に、テーブルインデックスとして「３」を指定したときのカードコントローラ１３０の動作例のタイミング図を示す。
【０１２０】
なお、図１６では、コマンドシーケンサ１４２のステートとデータシーケンサ１４４のステートも図示している。
【０１２１】
テーブルインデックス「３」は、図１４においてレスポンス有りタイプの制御コマンドＣＭＤ３に対応する。そのため、テーブルインデックス「３」のコマンド設定情報がそのまま設定されたカードコントローラ１３０は、制御コマンドの発行後、該制御コマンドに対応したレスポンスを受け取るシーケンスを経て制御コマンドの発行処理を終了する。
【０１２２】
図１７に、テーブルインデックスとして「９」を指定したときのカードコントローラ１３０の動作例のタイミング図を示す。
【０１２３】
なお、図１７では、コマンドシーケンサ１４２のステートとデータシーケンサ１４４のステートも図示している。
【０１２４】
テーブルインデックス「９」は、図１４においてビジー有りＲ１レスポンスを有する制御コマンドＣＭＤ７に対応する。そのため、テーブルインデックス「９」のコマンド設定情報がそのまま設定されたカードコントローラ１３０は、制御コマンドの発行後、メモリカード２００からビジー状態が通知され、該制御コマンドに対応したレスポンスを受け取るシーケンスを経て制御コマンドの発行処理を終了する。
【０１２５】
以上のように、本実施形態では、種々の制御コマンドの生成に必要なコマンド設定情報をテーブルインデックスで特定するようにしたので、規格やバージョンが異なる種々のコマンド設定情報を一括してコマンドテーブルに登録できるようにした。そして、テーブルインデックスを指定してやれば、複雑な制御コマンドの生成処理を簡素化できる。
【０１２６】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。本実施形態におけるメモリカードは、フラッシュメモリカードに限定されるものではない。本実施形態におけるメモリカードに代えて、Ｉ／Ｏデバイス、ＨＤＤ装置、ＤＶＤ装置、又は光ディスク装置であってもよい。
【０１２７】
更に、コマンド設定情報は上述の実施形態において説明したものに限定されるものではなく、例えばＳＤ規格と同様の思想に基づく規格やＳＤ規格を発展させた規格の制御コマンドのコマンドインデックスやそのパラメータ情報、例えばＭＭＣ規格と同様の思想に基づく規格やＭＭＣ規格を発展させた規格の制御コマンドのコマンドインデックスやそのパラメータ情報、例えばＳＤＩＯ規格と同様の思想に基づく規格やＳＤＩＯ規格を発展させた規格の制御コマンドのコマンドインデックスやそのパラメータ情報、例えばＣＥ−ＡＴＡ規格と同様の思想に基づく規格やＣＥ−ＡＴＡ規格を発展させた規格の制御コマンドのコマンドインデックスやそのパラメータ情報にも本発明は適用できる。
【０１２８】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１２９】
【図１】本実施形態における情報処理装置が適用された電子機器の構成例のブロック図。
【図２】本実施形態における制御コマンドの説明図。
【図３】図１のカードコントローラの構成例のブロック図。
【図４】図３のコントローラ制御レジスタ部の構成の概要を示す図。
【図５】図１のメモリカードの構成例のブロック図。
【図６】本実施形態における制御コマンド生成装置の構成の概要を示す図。
【図７】図６のコマンドテーブルの構成の概要を示す図。
【図８】図７のコマンドテーブルの各ブロックに登録されるコマンド設定情報の一例を示す図。
【図９】図１のホストシステムの処理例のフロー図。
【図１０】図９の制御コマンド発行処理の処理例のフロー図。
【図１１】図１０のカード規格及びバージョンの判別処理例のフロー図。
【図１２】図１０の制御コマンドの発行処理例のフロー図。
【図１３】図１のカードコントローラのドライバ部の構成の概要を示す図。
【図１４】本実施形態におけるコマンドテーブルに登録されるコマンド設定情報の具体例を示す図。
【図１５】テーブルインデックスとして「０」を指定したときのカードコントローラの動作例のタイミング図。
【図１６】テーブルインデックスとして「３」を指定したときのカードコントローラの動作例のタイミング図。
【図１７】テーブルインデックスとして「９」を指定したときのカードコントローラの動作例のタイミング図。
【符号の説明】
【０１３０】
１０  電子機器、  ２０  カードバス、  １００  ホストシステム、  １１０  ＣＰＵ、
１２０  メモリ、  １２２  システムバス、  １３０  カードコントローラ、
１３２  制御Ｉ／Ｆ回路、  １３４  ＦＩＦＯＩ／Ｆ回路、
１３６  コントローラ制御レジスタ部、  １３８  クロック制御部、
１４０  制御ロジック部、  １４２  コマンドシーケンサ、
１４４  データシーケンサ、  １５０  コマンド指定レジスタ、
１５２  引数設定レジスタ、  １５４  コマンドタイプ設定レジスタ、
１５６  レスポンス指定レジスタ、  １５８  転送タイプ設定レジスタ、
１６０  転送カウント数設定レジスタ、  ２００  メモリカード、
２１０  カードＩ／Ｆ回路、  ２２０  カードＩ／Ｆ制御回路、
２３０  カード制御レジスタ部、  ２４０  メモリＩ／Ｆ回路、
２５０  メモリコア部、  ３００  制御コマンド生成装置、
３１０  コマンドテーブル、  ３２０  コマンド情報設定部、
３２２  コマンド情報抽出部、  ３２４  コマンド発行制御部
【図１】
2008276650.tif 000003
【図２】
2008276650.tif 000004
【図３】
2008276650.tif 000005
【図４】
2008276650.tif 000006
【図５】
2008276650.tif 000007
【図６】
2008276650.tif 000008
【図７】
2008276650.tif 000009
【図８】
2008276650.tif 000010
【図９】
2008276650.tif 000011
【図１０】
2008276650.tif 000012
【図１１】
2008276650.tif 000013
【図１２】
2008276650.tif 000014
【図１３】
2008276650.tif 000015
【図１４】
2008276650.tif 000016
【図１５】
2008276650.tif 000017
【図１６】
2008276650.tif 000018
【図１７】
2008276650.tif 000019