説明

周辺装置制御回路およびそれを備えた情報処理装置

【課題】複数種類の周辺装置を接続可能な周辺装置制御回路であって、当該周辺装置制御回路と接続され協働することで周辺装置を制御可能な情報処理装置を構成するホスト装置のリソースの消費量を軽減することができる周辺装置制御回路の提供。
【解決手段】ホスト装置との通信経路を確立するためにバスリンクの形成動作を行うバスを介して、ホスト装置と接続するホストインタフェース部と、コネクタ部と、周辺装置がコネクタ部に接続されたことを検出する周辺装置検出部と、接続された周辺装置を識別する周辺装置識別部と、周辺装置インタフェース部と、を有し、ホストインタフェース部は、接続可能な複数種類の周辺装置それぞれに対応した複数の識別コードを保持し、周辺装置の識別の結果にもとづいて、識別コードを選択し、ホスト装置の間でバスリンクの形成動作を行うことを特徴とする、周辺装置制御回路。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト装置と周辺装置とのインタフェースである周辺装置制御回路に関し、特に、ホスト装置と周辺装置との間の通信経路であるパスとして、両者間を通信可能状態とするためにバスリンクの形成動作を要するバスを使用する周辺装置制御回路に関する。
【背景技術】
【0002】
従来、ホスト装置と周辺装置制御回路とで構成される情報処理装置(周辺装置制御装置)が知られる。当該情報処理装置では、周辺装置制御回路を介し、適宜脱着可能な周辺装置がホスト装置に接続される。ホスト装置に接続された周辺装置をホスト装置から制御可能とするために、ホスト装置には、周辺装置制御回路の周辺装置側インタフェースである周辺装置インタフェース回路の仕様、および、それに接続される周辺装置の仕様の両方に適合したドライバを内蔵しておき、さらに、ホスト装置は、周辺装置の仕様に適したドライバを、周辺装置制御回路の識別コード回路によって保持された周辺装置インタフェース回路の特徴を示す識別コードと関連づけて保持しておく。そして、ホスト装置は、周辺装置が周辺装置制御回路に接続されると、識別コードにもとづいて周辺装置制御回路を特定し、それに接続された周辺装置の動作制御を、適切なドライバを用いて行う。
【0003】
図6は、そのような情報処理装置の構成例を示す図である。周辺装置A&B制御回路11は、周辺装置Aコネクタ部12と、周辺装置Bコネクタ部13と、周辺装置A検出回路部14と、周辺装置B検出回路部15と、周辺装置Aインタフェース回路部16と、周辺装置Bインタフェース回路部17と、ホスト装置側インタフェースであるバスインタフェース回路部18と、を実装する。バスインタフェース回路部18は、周辺装置Aインタフェース回路部16の特徴を示す情報として周辺装置Aインタフェース識別コード19を備え、また、周辺装置Bインタフェース回路部17の特徴を示す情報として周辺装置Bインタフェース識別コード20を備える。
【0004】
ホスト装置31は、バス41を介して周辺装置A&B制御回路11と接続するHOSTデバイス32と、ホスト装置全体を制御するオペレーティングシステム(以下、OSと呼ぶ)33と、を実装する。そして、OS33は、周辺装置A51を制御するための周辺装置Aドライバ34、および、周辺装置B52を制御するための周辺装置Bドライバ35を内蔵する。ここで、ホスト装置31は、周辺装置が接続されるよりも前に、予め、バス41を介して接続されている周辺装置A&B制御回路11の周辺装置Aインタフェース識別コード19に周辺装置Aドライバ34を関連付けし、また、周辺装置Bインタフェース識別コード20に周辺装置Bドライバ35を関連付けている。
【0005】
図7は、従来の情報処理装置の別例である。本図の装置は、図6とは異なり、周辺装置接続用のコネクタ(周辺装置Cコネクタ112)を、物理的にはただ1つのみ備える。そして、本装置では、当該ただ1つのコネクタに複数種類の周辺装置を接続して使用可能である。
【0006】
このように、1つのコネクタ112に、複数種類の周辺装置(周辺装置C’、C’’)の1つが接続されて使用される場合、周辺装置Cインタフェース回路部116は、周辺装置C’と周辺装置C”の両方の動作モードに動作対応しており、ホスト装置131は、周辺装置C’と周辺装置C”の動作モードの両方に動作対応している共通の周辺装置Cドライバ134を周辺装置Cインタフェース識別コード119に関連づけておくことが望まれる。しかしながら、そのような共通のドライバ134を開発することは常に容易とはいえない。
【0007】
例えば、パーソナルコンピュータ(以下、PCと呼ぶ)分野における周辺装置であるSDカード型ICカードには、SD(登録商標)メモリカード(SD Memory Card)、SDIOカード(SD Input/Output Card)、マルチメディアカード(登録商標)(MultiMediaCard, MMC)という3種類の仕様があり、全てのICカードの形状に互換性があり、制御方法についても互換性がある。
【0008】
しかしながら、SDメモリカードは、最高動作周波数が208MHzであり、データ転送幅は最大4ビットのデータ読み書き記憶モードを有する点において他のSDカード型ICカードにはない特徴を有する。また、SDIOカードは、Input/Output制御モードを有する点において他のSDカード型ICカードにはない特徴を有する。また、マルチメディアカード(MMC)は、最高動作周波数が52MHzであり、データ転送幅は最大8ビットのデータ読み書き記憶モードを有する点において他のSDカード型ICカードにはない特徴を有する。このように、互いに互換性を有するSDカード型ICカードの間でも、それぞれが他にはない特化した動作モードを有する。
【0009】
次に、従来のPCと周辺装置制御回路の接続部分の構成について説明する。
【0010】
図8は、ホスト装置(PC231)と、周辺装置制御回路(SDカード型ICカードリーダ/ライタ211)とが、PCIバス241を介して接続される構成を示す例図である。図8に示すように、PC231とSDカード型ICカードリーダ/ライタ211(周辺装置制御回路)の接続部分がPCIバス241である場合には、PCIバス241の仕様により、PCIバス241を介してPC231とリーダ/ライタ211とが物理的に接続されると、両者は直ちに通信可能な状態になる。
【0011】
本例では、周辺装置制御回路(SDカード型ICカードリーダ/ライタ211)のPCIバス241側のインタフェース回路であるPCIインタフェース回路218は、周辺装置インタフェース回路(SDカード型ICカードインタフェース回路216)の特徴を示す情報であるSDカード型ICカードインタフェース識別コードを保持するPCIコンフィグレジスタ219がある。ここで保持されるSDカード型ICカードインタフェース識別コード(以下、「識別コード」と略称することがある。)には、DeviceID、VendorID、RevisionID、SubSystemID、SubSystemVendorID、ClassCode等の値が含まれる。
【0012】
ここで、ホスト装置(PC231)は、予め、識別コード、および、各種SDカード型ICカード251が有する動作モードの全てに対応しているドライバを関連づけておくと、ユーザは、全てのSDカード型ICカード251を問題なく利用する事ができる。
【0013】
しかしながら、各種SDカード型ICカードの全ての動作モードに対応するドライバを開発することは容易ではない。そのため、各動作モードについて個別のドライバを提供することしかできないという問題が生じた。
【0014】
つまり、図8の構成を例に採れば、PC231は、SDカード型ICカードリーダ/ライタ211について、SDメモリカードドライバ234と、SDIOカードドライバ235と、MMCドライバ236、を準備して全ての動作モードをカバーしても、PC231は、予め、何れか1つのドライバ(234、235、または、236)を、SDカード型ICカードインタフェース識別コード219に関連づけしておかなければならない。
【0015】
そのため、ユーザは、識別コードに関連付けされたドライバを介してICカードを使用する場合は問題ないが、関連付けされたドライバ以外のドライバを介してICカードを使用する場合には、使用可能であってもICカードの機能性を十分に活用できないか、または、使用することができない、といった事態に遭遇する。その場合、ユーザは、自身で周辺装置251の種類を把握して、周辺装置251に最適なドライバをPC231に再インストールしてPC231を再起動させなければならない、という問題がある。
【0016】
特許文献1は、上述の問題点を解決するための一方策を開示する。図9は、特許文献1が開示する情報処理装置のブロック図である。本例では、周辺装置制御回路の例としてSDカード型ICカードリーダ/ライタ311が示される。本例は、SDカード型ICカード351として、SDカード(SDメモリカードおよびSDIOカードを含む)ならびにMMCを想定し、ホスト装置(PC331)と周辺装置制御回路(SDカード型ICカードリーダ/ライタ311)とは、PCIバス341を介して接続される。
【0017】
SDカード型ICカードリーダ/ライタ311のSDカード型ICカードコネクタ312には、SDカード又はMMCのいずれかが、SDカード型ICカード351として挿入され接続される。
【0018】
SDカード型ICカード351がSDカード型ICカードコネクタ312に挿入され接続されると、カード検出回路314は、SDカード型ICカードコネクタ312にSDカード型ICカード351が接続されたことを認識する。そして、検出回路314は、SDカード型ICカード351の種類を識別するシーケンスの開始を、カード識別回路321に指示する。
【0019】
カード識別回路321がSDカード型ICカードコネクタ312に接続されたSDカード型ICカード351はMMCであると識別した場合には、カード識別回路321は、MMCインタフェース回路317に対してのみ、SDカード型ICカード351が接続されたことを通知する。通知を受けたMMCインタフェース回路317は、PCIインタフェース回路部318と、PCIバス341と、HOSTデバイス332と、を介し、OS333に対して割り込みを発生させ、MMCドライバ335にSDカード型ICカードコネクタ312に接続されたSDカード型ICカード351がMMCである事を認識させる。その後、MMCドライバ335は初期動作を開始し、MMCに対して必要なときにアクセスを行う。
【0020】
他方、カード識別回路321がSDカード型ICカードコネクタ312に接続されたSDカード型ICカード351はSDカードであると識別した場合には、カード識別回路321は、SDカードインタフェース回路部316に対してのみSDカード型ICカード351が接続されたことを伝える。通知を受けたSDカードインタフェース回路部316は、PCIインタフェース回路部318と、PCIバス341と、HOSTデバイス332と、を介してOS333に対して割り込みを発生させ、SDカードドライバ334にSDカード型ICカードコネクタ312に接続されたSDカード型ICカード351がSDカードである事を認識させる。その後、SDカードドライバ334は初期動作を開始し、SDカードに対して必要なときにアクセスを行う。
【0021】
上述のとおり、SDカードとMMCとは、接続部分(コネクタと接続する部分)の形状に互換性があるのみならず、制御方法についても互換性がある。そのため、カードインタフェース回路(316、317)は、SDカードとMMCの各々の制御仕様に特化した回路部分を除き、共通回路で実現できる。
【0022】
しかしながら、引用した従来技術の構成では、複数種類の周辺装置(例えば、SDカード、MMC、等)に動作対応し、物理的には同時に1つの周辺装置とのみ接続可能な周辺装置制御回路において、識別コードで関連付けされた周辺装置インタフェース回路と周辺装置のドライバは、同時には一組分しか使用しないにも関わらず、周辺装置制御回路には周辺装置インタフェース回路を複数搭載しておき、ホスト装置は、予め、全ての識別コードに対してドライバを関連づけておく必要が生じる、という問題がある。
【0023】
また、引用した特許文献には記載されていないが、図10のように、SDカードおよびメモリスティック(登録商標)の様に接続部分(コネクタと接続する部分)の形状に互換性を有さない複数種類の周辺装置を接続することができる周辺装置制御回路(複合ICカードリーダ/ライタ411)も存在する。PC431と複合ICカードリーダ/ライタ411とで構成される情報処理装置では、実際の使用時には、周辺装置(例えば、SDカード、メモリスティック、等)のただ1つのみがICカードコネクタ412に物理的に接続されて使用可能である。このような情報処理装置(431および411)の場合には、SDカードとメモリスティックとの間では制御仕様が異なるため、カードインタフェース回路部分(416、417)を共通化することは困難である。そのため、個別のカードインタフェース回路部としてSDカードインタフェース回路416およびメモリスティックインタフェース回路417が用意される。
【0024】
この場合でも、識別コードを保持するレジスタ(419および420)は、同時的に使用されることはなく、また、インタフェース回路(416および417)もまた、同時的に使用されない。にもかかわらず、ホスト装置(PC431)は、予め、全ての識別コード(419、420)に対しドライバ(434、435)を関連づけておく必要がある。したがって、ICカードコネクタ412にメモリスティックまたはSDカード(451)が接続されて使用される場合、使用されない識別コード(419または420)と、使用されないインタフェース回路(416または417)と、使用されないドライバ(434または435)と、は、情報処理装置において使用されずに残る。
【0025】
その結果として、図10のような情報処理装置では、実際には同時的に使用されない複数の識別コード(419および420)と関連付けされたドライバ(434および435)のためのリソースを確保しておかなければならず、ホスト装置(PC431)のリソースの浪費することになる。
【発明の概要】
【発明が解決しようとする課題】
【0026】
上記従来技術における問題に鑑み、複数種類の周辺装置を接続可能な周辺装置制御回路であって、当該周辺装置制御回路と接続され協働することで周辺装置を制御可能な情報処理装置を構成するホスト装置のリソースの消費量を軽減することができる周辺装置制御回路を提供する。
【課題を解決するための手段】
【0027】
その一態様は、ホスト装置および周辺装置と接続され、ホスト装置の周辺装置に対するインタフェースとして動作する周辺装置制御回路であって、ホスト装置との通信経路を確立するためにバスリンクの形成動作を行うバスを介して、ホスト装置と接続するホストインタフェース部と、周辺装置と接続するコネクタ部と、周辺装置がコネクタ部に接続されたことを検出する周辺装置検出部と、コネクタ部に接続された周辺装置を識別する周辺装置識別部と、コネクタ部を介して、周辺装置と接続する周辺装置インタフェース部と、を有し、ホストインタフェース部は、コネクタ部に接続可能な複数種類の周辺装置それぞれに対応した複数の識別コードを保持し、周辺装置識別部による周辺装置の識別の結果にもとづいて、複数の識別コードのうちから識別コードを選択し、ホスト装置の間でバスリンクの形成動作を行うことを特徴とする、周辺装置制御回路である。
【0028】
一態様においては、ホストインタフェース部は、PCI−expressバスに対応したインタフェース回路を備えることが好ましい。
【0029】
一態様においては、識別コードは、PCIコンフィグレジスタの、DeviceID、VendorID、ClassCode、RevisionID、SubSystemID、および、SubSystemVendorIDの少なくとも1つの値を含むことが好ましい。
【0030】
一態様においては、周辺装置は、メモリカードであることが好ましい。
【0031】
一態様においては、メモリカードは、SDメモリカード、SDIOカード、マルチメディアカード、メモリスティック、および、xDピクチュアカード(登録商標)の少なくともいずれか1つを含むことが好ましい。
【0032】
一態様においては、周辺装置識別部は、周辺装置インタフェース部がコネクタ部を介して周辺装置へ送信した信号に対する、周辺装置からの応答信号にもとづいて周辺装置を識別することが好ましい。
【0033】
一態様においては、周辺装置インタフェース部は、2以上の種類の周辺装置に対応することができることが好ましい。
【0034】
一態様においては、ホストインタフェース部は、USBバージョン3.0に準拠したバスに対応したインタフェース回路を備えることが好ましい。
【0035】
その別の一態様は、上記した周辺装置制御回路と、ホスト装置と、ホスト装置と周辺装置制御回路とを接続し、ホスト装置と周辺装置制御回路との間の通信経路を確立するためにバスリンクの形成動作を行うバスと、を有する情報処理装置であって、ホスト装置は、複数種類の周辺装置に対応した複数のドライバを備え、バスリンクの形成動作が完了した後で、ホストインタフェース部の識別コードにもとづいて複数のドライバのうちから少なくとも1つのドライバを選択し、当該選択されたドライバを用いて選択周辺装置制御回路に接続された周辺装置の制御を行う、情報処理装置である。
【0036】
そのさらに別の一態様は、ホスト装置および周辺装置と接続され、ホスト装置の周辺装置に対するインタフェースとして動作する周辺装置制御回路における周辺装置制御方法であって、周辺装置検出回路部が、周辺装置がコネクタ部に接続されたことを検出するステップと、周辺装置識別回路部が、検出するステップで検出されたコネクタ部に接続された周辺装置を識別するステップと、検出するステップおよび識別するステップよりも後で、ホストインタフェース回路部が、識別するステップでの周辺装置識別回路部による周辺装置の識別の結果にもとづいて、コネクタ部に接続可能な複数種類の周辺装置それぞれに対応した複数の識別コードのうちから識別コードを選択するステップと、ホストインタフェース回路部が、ホスト装置の間でバスリンクの形成動作を行うことを特徴とする、周辺装置制御方法である。
【発明の効果】
【0037】
本周辺装置制御回路によれば、当該回路と接続されて情報処理装置を構成するホスト装置のリソースの消費量を軽減させることができる。
【図面の簡単な説明】
【0038】
【図1】実施の形態1による情報処理装置のブロック図
【図2】LTSSMのステート図
【図3】実施の形態1による周辺装置制御回路のする動作のフローチャート
【図4】実施の形態2による情報処理装置のブロック図
【図5】実施の形態2による周辺装置制御回路のする動作のフローチャート
【図6】従来の情報処理装置の第1の例のブロック図
【図7】従来の情報処理装置の第2の例のブロック図
【図8】従来の情報処理装置の第3の例のブロック図
【図9】従来の情報処理装置の第4の例のブロック図
【図10】従来の情報処理装置の第5の例のブロック図
【発明を実施するための形態】
【0039】
以下、実施の形態について添付の図面を参照して詳細に説明する。
【0040】
実施の形態による周辺装置制御回路は、それと接続されるホスト装置とで情報処理装置を構成する。周辺装置制御回路とホスト装置とは、通信を開始するに際しバスリンクの形成動作を行うバス(例えば、PCI−expressバス)で接続される。
【0041】
周辺装置制御回路は、複数種類の周辺装置を接続可能であり、周辺装置が接続されると当該周辺装置の種類を識別し、当該識別結果にもとづいて、ホスト装置とのインタフェース回路に保持される周辺装置の識別コードを、識別された周辺装置に対応した識別コードに変更し、当該変更の後で、初めて、ホスト装置とのバスリンクの形成動作を行う。
【0042】
このようにして、周辺装置制御回路は、現に接続されている周辺装置に対応した識別コードのみを用いてホスト装置とのバスリンクを形成するため、ホスト装置は、周辺装置制御回路から必要最小数の周辺装置の識別コード(現に接続されている周辺装置の識別コード)のみを受け取り、その時点において周辺装置制御回路に接続されない別種の周辺装置の識別コードを受け取ることがなくなる。そのため、ホスト装置は、現に周辺装置制御回路に接続されている種類の周辺装置のみに対応するようにリソースを使用することができるようになり、リソースの消費量が軽減される。
【0043】
実施の形態1.
(構成)
図1は、実施の形態1による情報処理装置の構成を示すブロック図である。本実施形態においては、ホスト装置は、パーソナルコンピュータ(PC)531であり、周辺装置制御回路は、SDカード型ICカードのリーダ/ライタ511である。しかしながら、ホスト装置、および、周辺装置制御回路は、これらに限定されない。
【0044】
本実施形態による情報処理装置は、SDカード型ICカードリーダ/ライタ511(以下、「リーダ/ライタ511」と略称することがある。)と、PC531と、を有し、リーダ/ライタ511とPC531とは、PCI-expressバス541で接続される。SDカード型ICカード551としては、SDカード、マルチメディアカード(MMC)が含まれ、また、これらに限定されない。
【0045】
リーダ/ライタ511は、PCI−expressバス541を介し、PC531のHOSTデバイス532と物理的に(物理層レベルで)接続される。ただし、PCI−expressの仕様により、PCI−expressバス541は、リーダ/ライタ511のPCI−expressインタフェース回路518が、PC511との通信を許可するまでは物理層よりも上層のレベルにおいて通信経路は確立されておらず、通信不可能な状態のままである。
【0046】
リーダ/ライタ511は、SDカードまたはMMCのSDカード型ICカード551が物理的に一つだけ挿入可能なスロットでSDカード型ICカード551と接続されるICカードコネクタ512と、SDカード型ICカード551がICカードコネクタ512に接続されたことを検知するカード検出回路514と、ICカードコネクタ512と接続されたSDカード型ICカード551の種類(SDカードか、MMCか、)を識別するSDカード/MMC識別回路521と、ICカードコネクタ512と接続されたSDカード型ICカード551とのインタフェースを行う周辺装置側インタフェース回路であるSDカード/MMCインタフェース回路516と、PCI−expressバス541を介してPC531とのインタフェースを行うホスト装置側インタフェース回路であるPCI−expressインタフェース回路518と、を備える。また、ホスト装置側インタフェース回路であるPCI−expressインタフェース回路518は、PCIコンフィグレジスタであるICカードインターフェースコンフィグレジスタ519を備える。
【0047】
ICカードインターフェースコンフィグレジスタ519は、PCIコンフィグレジスタを有し、当該コンフィグレジスタは、DeviceID、VendorID、ClassCode、RevisionID、SubSystemID、SubSystemVendorIDを含む。また、ICカードインターフェースコンフィグレジスタ519には、PCIコンフィグレジスタの値として、SDカード識別コード522およびMMC識別コード523が用意される。SDカード識別コード522は、ICカードコネクタ512に接続されたSDカード型ICカード551がSDカードである場合に使用される識別コードである。他方、MMC識別コード523は、ICカードコネクタ512に接続されたSDカード型ICカード551がMMCである場合に使用される識別コードである。ここで、最初に設定される初期識別コードは、リーダ/ライタ511のPCI−expressインタフェース回路518がPC531との通信を許可するまではどんな値でもよい。例えば、初期識別コード(ICカードコンフィグレジスタ)の値として、SDカード識別コード522の値を使用してよい。
【0048】
ホスト装置であるPC531は、PCI−expressバス541を介してリーダ/ライタ511とのインタフェースを行うHOSTデバイス532と、ホスト装置全般を制御するOS533と、を備える。OS533には、SDカードを制御するためのSDカードドライバ534と、MMCを制御するためのMMCドライバ535と、が予めインストールされ、SDカード識別コード522とSDカードドライバ534とが関連付けされ、MMC識別コード523とMMCドライバ535とが関連付けされる。
【0049】
以上のように、SDカード型ICカード551は周辺装置を、ICカードコネクタ512は周辺装置とのコネクタ部を、カード検出回路518は周辺装置検出部を、SDカード/MMC識別回路521は周辺装置識別部を、SDカード/MMCインタフェース回路516は周辺装置インタフェース部を、PCI−expressインタフェース回路518はホストインタフェース部を、SDカード識別コード522は第1の識別コードを、MMC識別コード523は第2の識別コードを、PC531はホスト装置を、構成する。また、PCI−expressバス541は、通信を開始するに際し通信経路を確立するためにバスリンクの形成動作を行うバスである。
【0050】
(動作)
図2は、PCI−expressバスのバスリンクの形成動作であるLink Training and Status State Machine(以下、LTSSMと呼ぶ)を表すステート図である。図2に示されるように、PCI−express規格においては、バスのリンクステートとして、Detect、Polling、Configuration、L0、L0s、L1、L2、Recovery、Disabled、Hot Reset、Loopbackが定義される。
【0051】
ここで簡単にLTSSMについて説明する。
【0052】
PCI−expressインタフェース回路518は、電源投入時において初期ステートとして、DetectステートS101にある。DetectステートS101では、PCI−expressインタフェース回路518は、リンクネゴシエーションを開始し、接続先の電気的な検知を行い、検知に成功すると、PollingステートS102に移る。
【0053】
PollingステートS102では、PCI−expressインタフェース回路518は、Training Sequecnce Ordered Set信号の送受信を行い、接続先とのバスリンクの形成が正常に行えるかを確認し、正常であることを確認するとConfigurationステートS103に移る。
【0054】
ConfigurationステートS103では、PCI−expressインタフェース回路518は、リンクのコンフィギュレーションをネゴシエートするため、PollingステートS102と同じTraning Sequecnce Ordered Set信号の送受信を行って接続先とのバスリンクのレーン設定を行い、設定が正常に完了するとL0ステートS104に移る。
【0055】
ConfigurationステートS103からL0ステートS104への遷移にてバスリンクの形成動作が完了し、通常の通信が可能な状態となる。L0ステートS104へ遷移した後は、設定に依存してPCI−express規格にて規定されているActive State Power Management(ASPM)動作でのL0sステートS105、L1ステートS106への遷移や、上位層側であるHOSTデバイス532からの指令に従い、RecoveryステートS108を経由してDisabledステートS109等への遷移を行う。
【0056】
なお、PollingステートS102からL0ステートS104までの遷移中に何らかの異常状態により、PCI−expressインタフェース回路518が接続先とのバスリンクの形成を正常に行うことができないと判断した場合、ステートはDetectステートS101に戻り、バスリンクの形成は成されず、再度接続先の電気的な検知を行う動作(Detect)を繰り返す。
【0057】
また、PCI−expressインタフェース回路518は、ステートがL0ステートS104にある間に何らかの異常状態になりRecoveryステートS108に遷移しても最終的に通信が正常に行うことができないと判断した場合や、L2ステートS107や、DisabledステートS109や、Hot ResetステートS110や、LoopbackステートS111に遷移した後は、DetectステートS101に戻ることでバスリンクの形成が完全に切断状態となり、以降は必要に応じて接続先の電気的な検知動作(Polling)からのバスリンクの形成動作(Configurationを経てL0まで)を行う。
【0058】
図3は、実施の形態1による周辺装置制御回路(リーダ/ライタ511)の動作(一部にホスト装置(PC531)の動作を含む。)を示すフローチャートである。
【0059】
図3のフローチャートは、図1のリーダ/ライタ511にSDカード型ICカード551が挿入される場合の動作を詳細に示すフローチャートである。
【0060】
PC531と共にリーダ/ライタ511の電源が投入されると、リーダ/ライタ511内部のPCI−expressインタフェース回路518のLTSSMは初期ステートであるDetectステートS101(図2)となる(ステップS1)。
【0061】
カード検出回路514が、ICカードコネクタ512にSDカード型ICカード551が挿入されているかを確認する(ステップS2)。カード検出回路514が、挿入状態であると判断すると(ステップS2の「YES」)、カード検出回路514が、処理はステップS3へ移行し、未挿入状態であると判断すると(ステップS2の「NO」)、処理はステップS2へ戻る。
【0062】
ステップS3では、SDカード/MMC識別回路521が、SDカード/MMCインタフェース回路516を制御し、カード識別シーケンスを開始する。具体的なSDカード/MMCの識別方法としては、SDカード固有のコマンド信号を接続されたSDカード型ICカード551に発行し、カード551からの応答にもとづいて識別する方法がある。
【0063】
ステップS3での識別の結果にもとづいて、SDカード/MMC識別回路521は、ICカードコネクタ512に接続されたSDカード型ICカード551がSDカードであるか否か(MMCか)を判定する(ステップS4)。ステップS3で発行したSDカード固有のコマンド信号に対しSDカード型ICカード551が正常に応答した場合には、カード型ICカード551はSDカードであると判定し(ステップS4における「SDカード」)、正常に応答しなかった場合には、カード型ICカード551はMMCであると判定する(ステップS4における「MMC」)。
【0064】
ステップS4で、SDカード/MMC識別回路521が、カード型ICカード551はSDカードであると判定した場合、SDカード/MMC識別回路521は、SDカード/MMCインタフェース回路516に対し、ICカードコネクタ512にSDカード型ICカード551としてSDカードが接続されたことを通知する(ステップS11)。
【0065】
次に、SDカード/MMC識別回路521は、PCI−expressインタフェース回路518に対し、ICカードコネクタ512にSDカードが接続されたことを通知する(ステップS12)。
【0066】
通知を受けたPCI−expressインタフェース回路518は、PCIコンフィグレジスタであるICカードインタフェースコンフィグレジスタ519の識別コードの値を、予め準備していたSDカード識別コード522で上書きして変更する(ステップS13)。
【0067】
PCI−expressインタフェース回路518は、ステップS13においてPCIコンフィグレジスタの値を更新した後で、PCI−expressインタフェース回路518内のステートマシンLTSSMのステートをConfigurationステートS103からL0ステートS104へ遷移させるための移行動作の開始を許可するとともに、HOSTデバイス532との間のPCI-expressバスの形成シーケンス動作を開始させる(ステップS14)。
【0068】
なお、PCI−expressインタフェース回路518は、ステップS2でカード挿入を確認した時点で、ステートマシンLTSSMのステートをDetectステートS101からPollingステートS102を経てConfigurationステートS103まで予め遷移させておいてもよいし、ステップS14において初めてDetectステートS101からPollingステートS102へと遷移させてもよい。
【0069】
PCI−expressインタフェース回路518のLTSSMと、HOSTデバイス532のLTSSMが、共に、L0ステートS104へ遷移を完了する(S15)。この時点において、HOSTデバイス532とリーダ/ライタ511との間のPCI-expressバスの形成動作(バスリンクの形成動作)が完了する。
【0070】
すると、HOSTデバイス532は、OS533に対し、リーダ/ライタ511とのPCI-expressバス541のバスリンク形成動作が完了したことを通達するとともに、いわゆるHot−Plugイン動作を開始する(ステップS16)。
【0071】
通達を受けたOS533は、新しいシステムが構成されたと判断し、リーダ/ライタ511に対し、デバイスの識別コードを確認するハードウェアスキャンを実施し、リーダ/ライタ511からSDカード識別コード522を読み取る(ステップS17)。
【0072】
リーダ/ライタ511からSDカード識別コード522を読み取ったOS533は、予めインストールされ、SDカード識別コード522と関連付けて保持していたSDカードドライバ534を呼び出す(ステップS18)。
【0073】
さらに、OS533は、SDカードドライバ534に対し、SDカード/MMCインタフェース回路516からのカード接続割り込みを伝達する(ステップS19)。
【0074】
すると、SDカードドライバ534は、SDカード/MMCインタフェース回路516内の割り込みステータスレジスタのカード検出ステータスビットを確認し、ICカードコネクタ512にSDカードが接続されたことを認識する。そして、SDカードドライバ534は、PCI−expressバス541、PCI−expressインタフェース回路518、および、SDカード/MMCインタフェース回路516を介し、ICカードコネクタ512に接続されたSDカードに対しての初期動作を行う(ステップS20)。
【0075】
以降、SDカードが、カードスロット(ICカードコネクタ512)から抜去されるまでは、ユーザは、ホスト装置であるPC531からSDカードにアクセスして、該カードの機能を使用することができる(ステップS21)。
【0076】
SDカードが抜去されると、カード検出回路514は、ICカードコネクタ512からSDカードが抜去されたことを検知する(ステップS22)。
【0077】
SDカードが抜去されたことは、カード検出回路514からPCI−expressインタフェース回路518へ通知される。当該通知を受けたPCI−expressインタフェース回路518は、HOSTデバイス532とのPCI-expressバス541のバスリンク形成状態を一旦解除するため、PCI−expressインタフェース回路518のLTSSMのステートをL0ステートS104からRecoveryステートS108、DetectステートS101へと移行させ、HOSTデバイス532との接続状態を切断状態にさせる、いわゆるHot−Plugアウト動作を実施する(ステップS23)。ここで、PCI−expressインタフェース回路518がHOSTデバイス532のLTSSMのステートをDetectステートS101へと移行させる方法としては、例えば、PCI−express規格に存在しない通信パケットばかりを転送してもよいし、HOSTデバイス532が、接続先(PCI−expressインタフェース回路518)を電気的に(物理層レベルで)検知不可能な状態にしてもよい。
【0078】
ステップS23の後、処理はステップS2に戻り、リーダ/ライタ511は、カード検出回路518がICカードコネクタ512にSDカード型ICカード551が挿入されたことを検出するまで待機する。
【0079】
一方、ステップS4で、SDカード/MMC識別回路521が、SDカード型ICカード551はMMCであると判定した場合、SDカード/MMC識別回路521は、SDカード/MMCインタフェース回路516に対し、ICカードコネクタ512にSDカード型ICカード551としてMMCが接続されたことを通知する(ステップS31)。
【0080】
次に、SDカード/MMC識別回路521は、PCI−expressインタフェース回路518に対し、ICカードコネクタ512にMMCが接続されたことを通知する(ステップS32)。
【0081】
通知を受けたPCI−expressインタフェース回路518は、PCIコンフィグレジスタであるICカードインタフェースコンフィグレジスタ519の識別コードの値を、予め準備していたMMC識別コード523で上書きして変更する(ステップS33)。
【0082】
PCI−expressインタフェース回路518は、ステップS33においてPCIコンフィグレジスタの値を更新した後で、PCI−expressインタフェース回路518内のステートマシンLTSSMのステートをConfigurationステートS103からL0ステートS104へ遷移させるための移行動作の開始を許可するとともに、HOSTデバイス532との間のPCI-expressバスの形成シーケンス動作を開始させる(ステップS34)。
【0083】
PCI−expressインタフェース回路518のLTSSMと、HOSTデバイス532のLTSSMが、共に、L0ステートS104へ遷移を完了する(S35)。この時点において、HOSTデバイス532とリーダ/ライタ511との間のPCI-expressバスの形成動作(バスリンクの形成動作)が完了する。
【0084】
すると、HOSTデバイス532は、OS533に対し、リーダ/ライタ511とのPCI-expressバス541のバスリンク形成動作が完了したことを通達する(ステップS36)。
【0085】
通達を受けたOS533は、新しいシステムが構成されたと判断し、リーダ/ライタ511に対し、デバイスの識別コードを確認するハードウェアスキャンを実施し、リーダ/ライタ511からMMC識別コード523を読み取る(ステップS37)。
【0086】
リーダ/ライタ511からMMC識別コード523を読み取ったOS533は、予めインストールされ、MMC識別コード523と関連付けて保持していたMMCドライバ535を呼び出す(ステップS38)。
【0087】
さらに、OS533は、MMCドライバ535に対し、SDカード/MMCインタフェース回路516からのカード接続割り込みを伝達する(ステップS39)。
【0088】
すると、MMCドライバ535は、SDカード/MMCインタフェース回路516内の割り込みステータスレジスタのカード検出ステータスビットを確認し、ICカードコネクタ512にMMCが接続されたことを認識する。そして、MMCドライバ535は、PCI−expressバス541、PCI−expressインタフェース回路518、および、SDカード/MMCインタフェース回路516を介し、ICカードコネクタ512に接続されたMMCに対して初期動作を行う(ステップS40)。
【0089】
以降、MMCが、カードスロット(ICカードコネクタ512)から抜去されるまでは、ユーザは、ホスト装置であるPC531からMMCにアクセスして、該カードの機能を使用することができる(ステップS41)。
【0090】
MMCが抜去されると、カード検出回路514は、ICカードコネクタ512からMMCが抜去されたことを検知する(ステップS42)。
【0091】
MMCが抜去されたことは、カード検出回路514からPCI−expressインタフェース回路518へ通知される。当該通知を受けたPCI−expressインタフェース回路518は、HOSTデバイス532とのPCI-expressバス541のバスリンク形成状態を一旦解除するため、PCI−expressインタフェース回路518およびHOSTデバイス532およびHOSTデバイス532のLTSSMのステートをL0ステートS104からRecoveryステートS108、DetectステートS101へと移行させ、HOSTデバイス532との接続状態を切断状態にさせる(ステップS43)。
【0092】
ステップS43の後、処理はステップS2に戻り、リーダ/ライタ511は、カード検出回路518がICカードコネクタ512にSDカード型ICカード551が挿入されたことを検出するまで待機する。
【0093】
このように、実施の形態1による周辺装置制御回路(リーダ/ライタ511)は、周辺装置検出部(カード検出回路518)が、周辺装置(SDカード型ICカード551)とコネクタ部(ICカードコネクタ512)とが接続されたことを検出し、周辺装置識別部(SDカード/MMC識別回路521)が、接続された周辺装置を識別した後、ホストインタフェース部(PCI−expressインタフェース回路518)は、識別コードを、識別された周辺装置に対応した識別コードに変更し、その後で、初めて、ホストインタフェース部(PCI−expressインタフェース回路518)が、当該識別コードを用いて、ホスト装置(PC531)との通信を開始するに際しバスリンクの形成動作を行うバス(PCI−expressバス541)のバスリンクの形成動作を開始させる。
【0094】
そうすることで、ホスト装置は、接続された周辺装置に最適なドライバを選択することが可能であり、また、当該最適なドライバの選択に際し、ユーザに煩雑な作業を強いることがなく、周辺装置制御回路に接続されうる全ての周辺装置を快適に動作させることが可能である。また、ホスト装置は、現に接続されている周辺装置に対応したドライバ以外の周辺装置ドライバを起動させる必要がなく、周辺装置制御回路のためのリソースの消費量は最小限に抑えられる。また、周辺装置制御回路は、自身の識別コードを必要最小数(例えば、1つ)に抑えることが可能である。そのため、ホスト装置のリソースを浪費することがなくなる。また、周辺装置制御回路では、周辺装置インタフェース回路の構成を必要最小限の規模に抑えることが可能である。つまり、ホスト装置は、現に周辺装置制御回路に接続された周辺装置に対応した識別コードについてのリソースのみを確保すればよく、周辺装置制御回路の識別コードの数は最小数に構成されているため、ホスト装置は割り当てるリソースを最小限に抑えることができる。周辺装置制御回路においては、複数種類の周辺装置に対応するために当該種類と同数の周辺装置インタフェース回路を備える必要がなく、処理内容が共通する部分を単一の回路に集約することができる。そのため、ホスト装置および周辺装置制御回路で構成される情報処理装置は、無駄なリソースを浪費することがなくなり、また、周辺装置制御回路は必要最小限の回路構成で実現可能となる。
【0095】
実施の形態2.
以下、実施の形態2による情報処理装置について詳細に説明する。実施の形態1において既に説明した事項であって、本実施形態にも共通する事柄については、適宜説明を省略する。
【0096】
(構成)
図4は、実施の形態2による情報処理装置の構成を示すブロック図である。本実施形態においては、ホスト装置は、パーソナルコンピュータ(PC)831であり、周辺装置制御回路は、SDカードおよびメモリスティックが接続可能な複合ICカードリーダ/ライタ811である。複合ICカードリーダ/ライタ811は、実使用においては、SDカードまたはメモリスティックのいずれか1つを同時にICカードコネクタ812に接続することができる。
【0097】
本実施形態による情報処理装置は、複合ICカードリーダ/ライタ811(以下、「リーダ/ライタ811」と略称することがある。)と、PC831と、を有し、リーダ/ライタ811とPC831とは、PCI-expressバス841で接続される。ICカード851には、SDカードおよびメモリスティックが含まれる。
【0098】
リーダ/ライタ811は、PCI−expressバス841を介し、PC831のHOSTデバイス832と物理的に(物理層レベルで)接続される。ただし、PCI−expressの仕様により、PCI−expressバス841は、リーダ/ライタ811のPCI−expressインタフェース回路818が、PC811との通信を許可するまでは通信不可能な状態のままである。
【0099】
リーダ/ライタ811は、SDカードまたはメモリスティックのICカード851が物理的に一つだけ挿入可能なスロットでICカード851と接続されるICカードコネクタ812と、ICカード851がICカードコネクタ812に接続されたことを検知するカード検出回路814と、ICカードコネクタ812と接続されたICカード851の種類(SDカードか、メモリスティックか、)を識別するSDカード/メモリスティック識別回路821と、ICカードコネクタ812と接続されたSDカード(ICカード851)とのインタフェースを行うSDカードインタフェース回路816と、ICカードコネクタ812と接続されたメモリスティック(ICカード851)とのインタフェースを行うメモリスティックインタフェース回路817と、PCI−expressバス841を介してPC831とのインタフェースを行うPCI−expressインタフェース回路818と、を備える。また、PCI−expressインタフェース回路818は、PCIコンフィグレジスタであるICカードインターフェースコンフィグレジスタ819を備える。
【0100】
ICカードインターフェースコンフィグレジスタ819は、PCIコンフィグレジスタを有する。また、ICカードインターフェースコンフィグレジスタ519には、PCIコンフィグレジスタの値として、SDカード識別コード822およびメモリスティック識別コード823が用意される。SDカード識別コード522は、ICカードコネクタ512に接続されたICカード851がSDカードである場合に使用される識別コードである。他方、メモリスティック識別コード823は、ICカードコネクタ512に接続されたICカード851がメモリスティックである場合に使用される識別コードである。ここで、最初に設定される初期識別コードは、リーダ/ライタ811のPCI−expressインタフェース回路818がPC831との通信を許可するまではどんな値でもよい。例えば、初期識別コード(ICカードコンフィグレジスタ)の値として、SDカード識別コード822の値を使用してよい。
【0101】
ホスト装置であるPC831は、PCI−expressバス841を介してリーダ/ライタ811とのインタフェースを行うHOSTデバイス832と、ホスト装置全般を制御するOS833と、を備える。OS833には、SDカードを制御するためのSDカードドライバ834と、メモリスティックを制御するためのメモリスティックドライバ835と、が予めインストールされ、SDカード識別コード822とSDカードドライバ834とが関連付けされ、メモリスティック識別コード823とメモリスティックドライバ835とが関連付けされる。
【0102】
以上のように、SDカードまたはメモリスティックのいずれか1つであるICカード851は周辺装置を、ICカードコネクタ812は周辺装置とのコネクタ部を、カード検出回路818は周辺装置検出部を、SDカード/メモリスティック識別回路821は周辺装置識別部を、SDカードインタフェース回路816は第1の周辺装置インタフェース部を、メモリスティックインタフェース回路817は第2の周辺装置インタフェース部を、PCI−expressインタフェース回路818はホストインタフェース部を、SDカード識別コード822は第1の識別コードを、メモリスティック識別コード823は第2の識別コードを、PC831はホスト装置を、構成する。また、PCI−expressバス841は、通信を開始するに際し通信経路を確立するためにバスリンクの形成動作を行うバスである。
【0103】
(動作)
図5は、実施の形態2による周辺装置制御回路(リーダ/ライタ811)の動作(一部にホスト装置(PC831)の動作を含む。)を示すフローチャートである。
【0104】
図5のフローチャートは、図4のリーダ/ライタ811にICカード551(SDカードまたはメモリスティック)が挿入される場合の動作を詳細に示すフローチャートである。
【0105】
PC831と共にリーダ/ライタ811の電源が投入されると、リーダ/ライタ811内部のPCI−expressインタフェース回路818のLTSSMは初期ステートであるDetectステートS101(図2)となる(ステップS51)。
【0106】
カード検出回路814が、ICカードコネクタ812にICカード551が挿入されているかを確認する(ステップS52)。
【0107】
ステップS54では、SDカード/メモリスティック識別回路821が、ICカードコネクタ812に接続されたICカード851がSDカードであるか、メモリスティックであるか判定する。なお、SDカードとメモリスティックは物理構造が異なり、接続検出を示す信号は別々となるため、接続の検出と本識別とは同時に行うことができる。
【0108】
ステップS54で、SDカード/メモリスティック識別回路821が、ICカード851はSDカードであると判定した場合、SDカード/メモリスティック識別回路821は、SDカードインタフェース回路816のみに対し、ICカードコネクタ812にICカード851としてSDカードが接続されたことを通知する(ステップS61)。
【0109】
次に、SDカード/メモリスティック識別回路821は、PCI−expressインタフェース回路818に対し、ICカードコネクタ512にSDカードが接続されたことを通知する(ステップS62)。
【0110】
通知を受けたPCI−expressインタフェース回路818は、PCIコンフィグレジスタであるICカードインタフェースコンフィグレジスタ819の識別コードの値を、予め準備していたSDカード識別コード822で上書きして変更する(ステップS63)。
【0111】
PCI−expressインタフェース回路818は、ステップS63においてPCIコンフィグレジスタの値を更新した後で、PCI−expressインタフェース回路818内のステートマシンLTSSMのステートをConfigurationステートS103からL0ステートS104へ遷移させるための移行動作の開始を許可するとともに、HOSTデバイス832との間のPCI-expressバスの形成シーケンス動作を開始させる(ステップS64)。
【0112】
PCI−expressインタフェース回路818のLTSSMと、HOSTデバイス832のLTSSMが、共に、L0ステートS104へ遷移を完了する(S65)。この時点において、HOSTデバイス832とリーダ/ライタ811との間のPCI-expressバスの形成動作(バスリンクの形成動作)が完了する。
【0113】
すると、HOSTデバイス832は、OS833に対し、リーダ/ライタ811とのPCI-expressバス841のバスリンク形成動作が完了したことを通達する(ステップS66)。
【0114】
通達を受けたOS833は、新しいシステムが構成されたと判断し、リーダ/ライタ811に対し、デバイスの識別コードを確認するハードウェアスキャンを実施し、リーダ/ライタ811からSDカード識別コード822を読み取る(ステップS67)。
【0115】
リーダ/ライタ811からSDカード識別コード822を読み取ったOS833は、予めインストールされ、SDカード識別コード822と関連付けて保持していたSDカードドライバ834を呼び出す(ステップS68)。
【0116】
さらに、OS833は、SDカードドライバ834に対し、SDカードインタフェース回路816からのカード接続割り込みを伝達する(ステップS69)。
【0117】
すると、SDカードドライバ834は、SDカードインタフェース回路816内の割り込みステータスレジスタのカード検出ステータスビットを確認し、ICカードコネクタ812にSDカードが接続されたことを認識する。そして、SDカードドライバ834は、PCI−expressバス841、PCI−expressインタフェース回路818、および、SDカードインタフェース回路816を介し、ICカードコネクタ812に接続されたSDカードに対しての初期動作を行う(ステップS70)。
【0118】
以降、SDカードが、カードスロット(ICカードコネクタ812)から抜去されるまでは、ユーザは、ホスト装置であるPC831からSDカードにアクセスして、該カードの機能を使用することができる(ステップS71)。
【0119】
SDカードが抜去されると、カード検出回路814は、ICカードコネクタ812からSDカードが抜去されたことを検知する(ステップS72)。
【0120】
SDカードが抜去されたことは、カード検出回路814からPCI−expressインタフェース回路818へ通知される。当該通知を受けたPCI−expressインタフェース回路818は、ステップS23等(図3)と同様にして、HOSTデバイス832とのPCI-expressバス841のバスリンク形成状態を一旦解除する(ステップS73)。
【0121】
ステップS73の後、処理はステップS52に戻り、リーダ/ライタ811は、カード検出回路518がICカードコネクタ512にICカード551が挿入されたことを検出するまで待機する。
【0122】
一方、ステップS54で、SDカード/メモリスティック識別回路821が、ICカード851はメモリスティックであると判定した場合、SDカード/メモリスティック識別回路821は、メモリスティックインタフェース回路817のみに対し、ICカードコネクタ812にICカード551としてメモリスティックが接続されたことを通知する(ステップS81)。
【0123】
次に、SDカード/メモリスティック識別回路821は、PCI−expressインタフェース回路818に対し、ICカードコネクタ512にメモリスティックが接続されたことを通知する(ステップS82)。
【0124】
通知を受けたPCI−expressインタフェース回路818は、PCIコンフィグレジスタであるICカードインタフェースコンフィグレジスタ819の識別コードの値を、予め準備していたメモリスティック識別コード823で上書きして変更する(ステップS83)。
【0125】
PCI−expressインタフェース回路818は、ステップS83においてPCIコンフィグレジスタの値を更新した後で、HOSTデバイス832との間のPCI-expressバスの形成シーケンス動作を開始させる(ステップS84)。
【0126】
PCI−expressインタフェース回路818のLTSSMと、HOSTデバイス832のLTSSMが、共に、L0ステートS104へ遷移を完了する(S85)。この時点において、HOSTデバイス832とリーダ/ライタ811との間のPCI-expressバスの形成動作(バスリンクの形成動作)が完了する。
【0127】
すると、HOSTデバイス832は、OS833に対し、リーダ/ライタ811とのPCI-expressバス841のバスリンク形成動作が完了したことを通達する(ステップS86)。
【0128】
通達を受けたOS833は、新しいシステムが構成されたと判断し、リーダ/ライタ811に対し、デバイスの識別コードを確認するハードウェアスキャンを実施し、リーダ/ライタ511からメモリスティック識別コード523を読み取る(ステップS87)。
【0129】
リーダ/ライタ811からメモリスティック識別コード823を読み取ったOS833は、予めインストールされ、メモリスティック識別コード823と関連付けて保持していたメモリスティックドライバ835を呼び出す(ステップS88)。
【0130】
さらに、OS833は、メモリスティックドライバ835に対し、メモリスティックインタフェース回路817からのカード接続割り込みを伝達する(ステップS89)。
【0131】
すると、メモリスティックドライバ835は、メモリスティックインタフェース回路817内の割り込みステータスレジスタのカード検出ステータスビットを確認し、ICカードコネクタ812にメモリスティックが接続されたことを認識する。そして、メモリスティックドライバ835は、PCI−expressバス841、PCI−expressインタフェース回路818、および、メモリスティックインタフェース回路817を介し、ICカードコネクタ812に接続されたメモリスティックに対して初期動作を行う(ステップS90)。
【0132】
以降、メモリスティックが、カードスロット(ICカードコネクタ812)から抜去されるまでは、ユーザは、ホスト装置であるPC831からメモリスティックにアクセスして、該カードの機能を使用することができる(ステップS91)。
【0133】
メモリスティックが抜去されると、カード検出回路814は、ICカードコネクタ812からメモリスティックが抜去されたことを検知する(ステップS92)。
【0134】
メモリスティックが抜去されたことは、カード検出回路814からPCI−expressインタフェース回路818へ通知される。当該通知を受けたPCI−expressインタフェース回路818は、ステップS73等と同様にして、HOSTデバイス832とのPCI-expressバス841のバスリンク形成状態を一旦解除する(ステップS93)。
【0135】
ステップS93の後、処理はステップS52に戻り、リーダ/ライタ811は、カード検出回路818がICカードコネクタ812にICカード851が挿入されたことを検出するまで待機する。
【0136】
このように、実施の形態2による周辺装置制御回路(リーダ/ライタ811)は、実施の形態1による周辺装置制御回路(リーダ/ライタ511)と同様に、周辺装置識別部(SDカード/メモリスティック識別回路821)が、接続された周辺装置を識別した後、ホストインタフェース部(PCI−expressインタフェース回路818)は、識別コードを、識別された周辺装置に対応した識別コードに変更し、その後で、初めて、ホストインタフェース部(PCI−expressインタフェース回路818)が、当該識別コードを用いて、ホスト装置(PC831)との通信を開始するに際しバスリンクの形成動作を行うバス(PCI−expressバス841)のバスリンクの形成動作を開始させる。
【0137】
そうすることで、実施の形態2においても実施の形態1と同様に、ホスト装置は、最適なドライバを選択することが可能できる。また、当該最適なドライバの選択に際し、ユーザに煩雑な作業を強いることがない。また、ホスト装置は、不要な周辺装置ドライバを起動させる必要がなく、リソースの消費量は最小限に抑えられる。また、周辺装置制御回路は、自身の識別コードを必要最小数(例えば、1つ)に抑えることができる。そのため、ホスト装置のリソースを浪費しない。そのため、ホスト装置および周辺装置制御回路で構成される情報処理装置は、無駄なリソースを浪費することがなくなるため、必要最小限の構成で実現可能となる。
【0138】
なお、実施の形態1および2では、周辺装置制御回路として周辺装置であるメモリカードに対するリーダ/ライタを例に説明した。しかしながら、これは一例であり、ホスト装置と、メモリカード、通信カード及びLANカード等のICカードといった周辺装置とのインタフェースを行う周辺装置制御回路であってもよい。周辺装置は、ICカードであってもよい。ICカードには、SDメモリカード、SDIOカード、MMC、メモリスティック、xDピクチュアカード等が含まれてよい。
【0139】
実施の形態1および2では、通信を開始するに際しバスリンクの形成動作を行うバスとしてPCI−expressバスを例にして説明した。しかしながら、これは一例であり、ホスト装置と周辺装置制御回路との間のバスインタフェースとして、USB Version3.0等を使用してもよい。
【0140】
ホストインタフェース部は、PCI−Expressインタフェース回路であってよい。あるいは、USBバージョン3.0対応インタフェース回路であってもよい。ホストインタフェース部の識別コードは、例えば、PCIコンフィグレジスタ内部のDeviceIDと、VendorIDと、ClassCodeと、RevisionIDと、SubSystemIDと、SubSystemVendorIDと、の少なくともいずれか1つであってよいが、上記以外のコードであってもよい。
【0141】
ホスト装置は、パーソナルコンピュータに限定されない。ホスト装置は、汎用の電子計算機でなくともよく、専用の電子計算機であってもよい。また、ホスト装置は、デジタルカメラ、ビデオカメラ等の撮像装置や、複写機、プリンタ、ファクシミリ、デジタル複合機等の画像処理装置、DVDプレーヤ、テレビ等の映像再生装置、であってもよい。
【産業上の利用可能性】
【0142】
本発明は、情報処理装置の一部を構成する周辺装置制御回路として有用である。
【符号の説明】
【0143】
511 ・・・ SDカード型ICカードリーダ/ライタ
512 ・・・ ICカードコネクタ
514 ・・・ カード検出回路
516 ・・・ SDカード/MMCインタフェース回路
518 ・・・ PCI−expressインタフェース回路
519 ・・・ ICカードインタフェースコンフィグレジスタ
521 ・・・ SDカード/MMC識別回路
522 ・・・ SDカード識別コード
523 ・・・ MMC識別コード
531 ・・・ パーソナルコンピュータ
532 ・・・ HOSTデバイス
533 ・・・ オペレーティングシステム
534 ・・・ SDカードドライバ
535 ・・・ MMCドライバ
551 ・・・ SDカード型ICカード
541 ・・・ PCI−expressバス
811 ・・・ 複合ICカードリーダ/ライタ
812 ・・・ ICカードコネクタ
814 ・・・ カード検出回路
816 ・・・ SDカードインタフェース回路
817 ・・・ メモリスティックインタフェース回路
818 ・・・ PCI−expressインタフェース回路
819 ・・・ ICカードインタフェースコンフィグレジスタ
821 ・・・ SDカード/メモリスティック識別回路
822 ・・・ SDカード識別コード
823 ・・・ メモリスティック識別コード
831 ・・・ パーソナルコンピュータ
832 ・・・ HOSTデバイス
833 ・・・ オペレーティングシステム
834 ・・・ SDカードドライバ
835 ・・・ メモリスティックドライバ
851 ・・・ ICカード
841 ・・・ PCI−expressバス
【先行技術文献】
【特許文献】
【0144】
【特許文献1】特開2006−209643号公報
【特許文献2】特開2007−233800号公報

【特許請求の範囲】
【請求項1】
ホスト装置および周辺装置と接続され、前記ホスト装置の前記周辺装置に対するインタフェースとして動作する周辺装置制御回路であって、
前記ホスト装置との通信経路を確立するためにバスリンクの形成動作を行うバスを介して、前記ホスト装置と接続するホストインタフェース部と、
前記周辺装置と接続するコネクタ部と、
前記周辺装置が前記コネクタ部に接続されたことを検出する周辺装置検出部と、
前記コネクタ部に接続された前記周辺装置を識別する周辺装置識別部と、
前記コネクタ部を介して、前記周辺装置と接続する周辺装置インタフェース部と、を有し、
前記ホストインタフェース部は、前記コネクタ部に接続可能な複数種類の周辺装置それぞれに対応した複数の識別コードを保持し、前記周辺装置識別部による前記周辺装置の識別の結果にもとづいて、前記複数の識別コードのうちから識別コードを選択し、前記ホスト装置の間で前記バスリンクの形成動作を行うことを特徴とする、周辺装置制御回路。
【請求項2】
前記ホストインタフェース部は、PCI−expressバスに対応したインタフェース回路を備える、請求項1に記載の周辺装置制御回路。
【請求項3】
前記識別コードは、PCIコンフィグレジスタの、DeviceID、VendorID、ClassCode、RevisionID、SubSystemID、および、SubSystemVendorIDの少なくとも1つの値を含む、請求項2に記載の周辺回路制御装置。
【請求項4】
前記周辺装置は、メモリカードである、請求項1乃至3のいずれか一項に記載の周辺装置制御回路。
【請求項5】
前記メモリカードは、SDメモリカード、SDIOカード、マルチメディアカード、メモリスティック、および、xDピクチュアカードの少なくともいずれか1つを含む、請求項4に記載の周辺装置制御回路。
【請求項6】
前記周辺装置識別部は、前記周辺装置インタフェース部が前記コネクタ部を介して前記周辺装置へ送信した信号に対する、前記周辺装置からの応答信号にもとづいて前記周辺装置を識別する、請求項1乃至5のいずれか一項に記載の周辺装置制御回路。
【請求項7】
前記周辺装置インタフェース部は、2以上の種類の周辺装置に対応することができる、請求項1乃至6のいずれか一項に記載の周辺装置制御回路。
【請求項8】
前記ホストインタフェース部は、USBバージョン3.0に準拠したバスに対応したインタフェース回路を備える、請求項1に記載の周辺装置制御回路。
【請求項9】
請求項1乃至8のいずれか一項に記載の周辺装置制御回路と、
ホスト装置と、
前記ホスト装置と前記周辺装置制御回路とを接続し、前記ホスト装置と前記周辺装置制御回路との間の通信経路を確立するためにバスリンクの形成動作を行うバスと、を有する情報処理装置であって、
前記ホスト装置は、
前記複数種類の周辺装置に対応した複数のドライバを備え、
前記バスリンクの形成動作が完了した後で、前記ホストインタフェース部の識別コードにもとづいて前記複数のドライバのうちから少なくとも1つのドライバを選択し、当該選択されたドライバを用いて前記選択前記周辺装置制御回路に接続された前記周辺装置の制御を行う、情報処理装置。
【請求項10】
ホスト装置および周辺装置と接続され、前記ホスト装置の前記周辺装置に対するインタフェースとして動作する周辺装置制御回路における周辺装置制御方法であって、
周辺装置検出回路部が、前記周辺装置が前記コネクタ部に接続されたことを検出するステップと、
周辺装置識別回路部が、前記検出するステップで検出された前記コネクタ部に接続された前記周辺装置を識別するステップと、
前記検出するステップおよび前記識別するステップよりも後で、ホストインタフェース回路部が、前記識別するステップでの前記周辺装置識別回路部による前記周辺装置の識別の結果にもとづいて、前記コネクタ部に接続可能な複数種類の周辺装置それぞれに対応した複数の識別コードのうちから識別コードを選択するステップと、
前記ホストインタフェース回路部が、前記ホスト装置の間で前記バスリンクの形成動作を行うことを特徴とする、周辺装置制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−63851(P2012−63851A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−205773(P2010−205773)
【出願日】平成22年9月14日(2010.9.14)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】