Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5077624B2 - Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 - Google Patents
[go: Go Back, main page]

JP5077624B2 - Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 - Google Patents

Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 Download PDF

Info

Publication number
JP5077624B2
JP5077624B2 JP2006098481A JP2006098481A JP5077624B2 JP 5077624 B2 JP5077624 B2 JP 5077624B2 JP 2006098481 A JP2006098481 A JP 2006098481A JP 2006098481 A JP2006098481 A JP 2006098481A JP 5077624 B2 JP5077624 B2 JP 5077624B2
Authority
JP
Japan
Prior art keywords
packet
usb
output
data
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006098481A
Other languages
English (en)
Other versions
JP2007272643A (ja
Inventor
賢一 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006098481A priority Critical patent/JP5077624B2/ja
Publication of JP2007272643A publication Critical patent/JP2007272643A/ja
Application granted granted Critical
Publication of JP5077624B2 publication Critical patent/JP5077624B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、複数のサーバが共通のUSBバスを介してUSBデバイスに接続されたUSBデバイス共有システム、これで用いるサーバのインタフェース装置、その動作方法、その動作プログラム、及びデバイス共有システムに係り、特に複数のサーバがUSBデバイスのデータキャッシュ機能を持ち、USBデバイスを同時に使用可能としたUSBデバイス共有方式に関する。
ブレードサーバのように複数のサーバを一台のシャーシに搭載するような装置では、各サーバにCD−ROM(Compact Disk Read Only Memory)ドライブやフロッピー(登録商標)ディスクドライブ(以下、FDD)などの周辺装置を搭載すると実装面積やコストの面で問題がある。このため、シャーシに各周辺装置を一台ずつ搭載し、複数のサーバが同時にその周辺装置を使用しないようにスイッチで周辺装置を使用するサーバを切り替える方式が取られていた。
サーバと周辺装置を接続するインタフェースには、現在最も普及しているためコストと装置の品揃えの点で有利なUSB(Universal Serial Bus)が普通使用される。また、サーバ用途においては、周辺装置は主にOS(オペレーティングシステム)などのソフトウェアのインストールに使用され、運用中に使用されることは少ない。
なお、本発明に関連する先行技術として、データ転送にかかる時間を短縮するようにした並列型ディジタル信号処理装置(特許文献1参照)や、コモンバス方式を採用した記憶システム(特許文献2参照)が提案されている。
特開平04−138554号公報 特許第3264465号明細書
しかしながら、前述したような周辺装置を使用するサーバを切り替える方式の装置では、一台ずつ順番にソフトウェアのインストールを行わなければならないため、特にサーバ台数が多くなると多大な手間と時間が必要であった。前述した先行技術は、必ずしもこのような課題を認識してなされたものではない。
本発明は、このような従来の事情を考慮してなされたもので、複数のサーバが同一の周辺装置を使用するシステムにおいて、サーバ台数に拠らず全サーバのソフトウェアのインストール等のデータ転送時間を大幅に短縮し、運用の手間と時間を削減することを目的とする。
上記目的を達成するため、本発明に係るUSBデバイス共有システムは、複数のサーバを有し、前記複数のサーバが共通のUSBバスを介してUSBデバイスに接続されたシステムにおいて、前記複数のサーバは、前記USBデバイスとの間でパケットを送受信するUSBコントローラと、前記USBコントローラと前記USBバスの間に配置されるインタフェース手段とを備え、前記インタフェース手段は、前記USBバスを流れるパケットの内容を解析する第1のパケット解析手段と、前記第1のパケット解析手段による前記パケットの解析結果に応じて前記複数のサーバと前記USBデバイスとの間でリード及びライトされるデータをバッファに取り込むデータ取り込み手段と、前記USBバスを流れるパケットを監視し、他のサーバが前記USBバスを利用していると判断できる間は前記USBバスへのパケットの出力を抑止するバス監視手段と、前記USBコントローラから前記USBデバイスに出力されるパケットを一時保存する一時保存手段と、前記USBコントローラから前記USBデバイスに出力されるデバイスリクエストを解析し、該デバイスリクエスト内のアドレス情報から前記バッファのリードアドレスを生成する第2のパケット解析手段と、前記第2のパケット解析手段による前記解析結果である前記バッファのリードアドレスに基づいて前記バッファを読み込み、前記USBデバイスからリードしようとするデータと同一のデータが前記バッファに存在するか否かを判断する判断手段と、前記バッファに前記同一のデータが存在するときに前記一時保存手段のパケットを前記USBバスに出力することなく、前記バッファから前記USBコントローラに前記同一のデータを返却するパケット出力制御手段とを備え、前記第1のパケット解析手段は、前記USBバスを流れるデバイスリクエストのアドレス情報から前記バッファのライトアドレスを生成し、前記データ取り込み手段は、前記バッファのライトアドレスに基づいて前記USBバスを流れるデータを前記バッファに取り込み、前記第2のパケット解析手段は、前記USBコントローラから前記USBデバイスに対するデータリードのデバイスリクエストが発行されたときに前記デバイスリクエストのアドレス情報から前記バッファのリードアドレスを生成し、前記判断手段は、前記バッファのリードアドレスに基づいて前記バッファに前記同一のデータが存在するか否かを判断し、前記パケット出力制御手段は、前記USBコントローラに出力するためのハンドシェークパケットを生成するハンドシェーク生成部と、前記ハンドシェーク生成部、前記USBバス、及び前記バッファの出力側を選択的に切り替えて前記USBコントローラ側に接続するマルチプレクサとを有することを特徴とする。
本発明によれば、複数のサーバが同一の周辺装置を使用するシステムにおいて、サーバ台数に拠らず全サーバのソフトウェアのインストール等のデータ転送時間を大幅に短縮し、運用の手間と時間を削減することができる。
次に、本発明に係るUSBデバイス共有システム、これで用いるサーバのインタフェース装置及びその動作方法を実施するための最良の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の一実施例としてのUSBデバイス共有システムのブロック図が示されている。
図において、サーバA100とサーバB200は、全く同一のハードウェア構成となっており、USBバス1を介してUSB HUB(USBハブ)2に接続されている。USB HUB2には、USBデバイスであるCD−ROMドライブ3とFDDドライブ4が接続され、USBバス1、USB HUB2を介してサーバA100、サーバB200に共有される。
サーバA100は、USBコントローラ102と、これとUSBバス1との間に設けられるインタフェース部(本発明のインタフェース手段又は装置を成す)101とを備える。なお、USBコントローラ102と、インタフェース部101とは、それぞれの機能を実現可能な構成であれば、一体の装置でも、或いは別体の装置でも、いずれでも構成することが可能である。
インタフェース部101は、マルチプレクサ104、出力パケット解析部105、出力パケット一時待避FIFO(First in First out)(FIFOバッファ)106、ハンドシェーク生成部107、パケット出力判断部108、データバッファ110、入力リクエスト解析部111、及びUSBバス監視部112を備える。これら各部の少なくとも一部の機能は、プロセッサ(例えばCPU(Central Processing Unit))により実行されるプログラムコードで実現することが可能である。この場合、プロセッサ及びプログラムコードが構成要素として含まれる。
USBコントローラ102が出力したデバイスリクエストは、出力パケット解析部105と出力パケット一時待避FIFO106が受信する。
出力パケット解析部105は、USBコントローラ102が出力したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成する。また、USBコントローラ102が出力したデバイスリクエスト、トークンパケットの種類をパケット出力判断部108へ報告する。
出力パケット一時待避FIFO106は、USBコントローラ102が出力したパケットを一時的に保存し、パケット出力判断部108の指示に応じて、パケットをUSBバス1に出力するか破棄するかのどちらかの処理を行う。
パケット出力判断部108は、出力パケット解析部105から受け取るパケットの情報とデータバッファ110のデータ格納状況とUSBバス監視部112から受け取るUSBバスの使用状況から、出力パケット一時待避FIFO106に保存されているパケットをUSBバス1に出力するかどうかの判断と、マルチプレクサ104をどの向きに切り替えるかの判断と、ハンドシェーク生成部107がどのハンドシェークを生成するかの判断とを行い、その状況に応じて指示を出す。
USBバス監視部112は、USBバス1が使用中かどうかを監視し、USBバス1の使用状況をパケット出力判断部108に伝える。
入力リクエスト解析部111は、USBバス1に流れるデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のライトアドレスを生成する。
データバッファ110は、USBバス1に流れるデータパケットを入力パケット解析部111から指定されたアドレスへ書き込み、出力パケット解析部105が指定したアドレスのデータをマルチプレクサ104へ出力する。また、出力パケット解析部105が指定したアドレスにデータが格納されているかどうかをパケット出力判断部108へ報告する。
ハンドシェーク生成部107は、パケット出力判断部108の指示に従い、ACKまたはNACKハンドシェークパケットを生成する。
マルチプレクサ104は、パケット出力判断部108の指示に応じて、USBバス1から入力したパケット、データバッファ110が出力したデータパケット、ハンドシェーク生成部107が生成したハンドシェークパケットのいずれかから、USBコントローラ102に出力するパケットを選択する。
サーバB200も、上記のサーバA100と同一の構成であり、USBコントローラ202及びインタフェース部201を備える。インタフェース部201は、マルチプレクサ204、出力パケット解析部205、出力パケット一時待避FIFO206、ハンドシェーク生成部207、パケット出力判断部208、データバッファ210、入力リクエスト解析部211、及びUSBバス監視部212を備える。これら各部の機能は、上記のサーバA100の各部の機能と同一であるため、その説明は省略する。
次に、図1の回路の動作について、図2〜図4を参照して説明する。図2〜図4は、パケット出力判断部108の処理動作を示す。
(データリード時)
最初に、図2を参照して、USBデバイスからデータをリードする場合の動作を説明する。
まず、サーバA100がCD−ROMドライブ3からデータをリードする場合、USBコントローラ102は、最初にデバイスリクエストを発行する。デバイスリクエストは、トークンパケットとデータパケットから構成される。USBコントローラ102が出力したデバイスリクエストは、パケット一時待避FIFO106に保存されると同時に、出力パケット解析部105が受信する。
出力パケット解析部105は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成すると同時に、パケット出力判断部108へデータリードのデバイスリクエストが発行されたことを通知する。データバッファ110は、出力パケット解析部105により生成されたリードアドレスに対応したデータが格納されているかどうかをパケット出力判断部108に通知する。ここで、データバッファ110にデータが格納されていない場合と、既に格納されている場合とで処理が分かれる。
データバッファ110にデータが格納されていない場合、パケット出力判断部108は、データリードのデバイスリクエストが発行されたことと、データバッファ110にデータが格納されていないことの二点の条件より、デバイスリクエストをUSBバス1に出力し、出力されたデバイスリクエストに対するハンドシェークパケットがCD−ROMドライブから返却されると判断する(ステップSt1:YES、ステップSt2:NO)。その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に保存しているデバイスリクエストをUSBバス1に出力するよう指示し、マルチプレクサ104をUSBバス1側に切り替える(ステップSt3)。USBバス1に出力されたデバイスリクエストは、サーバA100とサーバB200、およびUSB HUB2が受信する。
サーバA100、サーバB200の入力パケット解析部111、211は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110、210のライトアドレスを生成する。USB HUB2は、受信したデバイスリクエストをCD−ROM3に出力し、CD−ROM3は、デバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットは、USB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。
サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットは、USBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ACKハンドシェークパケットは破棄される。
サーバA100のUSBコントローラ102は、ACKハンドシェークパケット受信により、CD−ROMドライブ3がデータパケットを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。
パケット出力判断部108は、INトークンパケット発行の報告を受けると(ステップSt4:YES)、出力パケット一時待避FIFO106へINトークンパケットをUSBバス1へ出力するよう指示し、さらにCD−ROM3から返却されるデータパケットをUSBコントローラ102が受信できるようマルチプレクサ104をUSBバス1側に切り替える(ステップSt5)。USBバス1に出力されたINトークンパケットはUSB HUBを経由してCD−ROMドライブ3が受信し、CD−ROMドライブ3は、それによりデータパケットを出力する。データパケットは、USB HUB2を経由してUSBバス1へ出力され、サーバA100とサーバB200が受信する。
サーバA100、サーバB200のデータバッファ110、210は、入力パケット解析部111、211が指示したアドレスへデータパケットを格納する。サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、データパケットはバッファ110に格納されると共にUSBコントローラ102へ出力される。
USBコントローラ102は、データパケットを全て受信するとACKハンドシェークパケットを出力する。出力されたACKハンドシェークはINトークンと同様の手順でCD−ROMドライブ3へ転送され、CD−ROMドライブ3からのデータリードが完了する。この時点で、サーバA100とサーバB200のデータバッファ110、210にCD−ROMドライブ3のデータが格納された状態となる。
データバッファ110にデータが格納されている場合、パケット出力判断部108は、データリードのデバイスリクエストが発行されたことと、データバッファ110にデータパケットが格納されていることの二点の条件より、デバイスリクエストをUSBバス1に出力しないで、データバッファ110に格納されたデータパケットをUSBコントローラ102に出力すると判断する(ステップSt1:YES、ステップSt2:YES)。その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に保存していたデバイスリクエストを破棄し、ACKハンドシェークパケットを生成するようハンドシェーク生成部107に指示し、マルチプレクサ104をハンドシェーク生成部107側に切り替える(ステップSt6)。生成されたACKハンドシェークパケットは、マルチプレクサ104を経由し、USBコントローラ102へ出力される。
USBコントローラ102は、ハンドシェークパケット受信によりCD−ROMドライブ3がデータを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。
パケット出力判断部108は、INトークンパケット発行の報告を受けると(ステップSt7:YES)、出力パケット一時待避FIFO106へINトークンパケットを破棄するよう指示し、マルチプレクサ104をデータバッファ110側へ切り替える(ステップSt8)。データバッファ110が出力したデータパケットはマルチプレクサ104を経由してUSBコントローラ102へ出力されると同時にパケット出力判断部108により監視される。
続いて、パケット出力判断部108は、データパケットが全て出力されると(ステップSt9:YES)、ハンドシェーク生成部107へACKハンドシェークパケットを生成するよう指示し、マルチプレクサ104をハンドシェーク生成部107側へ切り替える(ステップSt10)。生成されたACKハンドシェークをUSBコントローラ102が受信し、データリードが完了する。このように、データバッファ110に既にデータが格納されている場合、USBバス1には全くパケットが流れない。
(データライト時)
次に、図3を参照して、USBデバイスにデータをライトする場合の動作を説明する。
サーバA100がFDDドライブ4へデータをライトする場合、USBコントローラ102は最初にデバイスリクエストを発行する。USBコントローラ102が出力したデバイスリクエストは、パケット一時待避FIFO106に保存されると同時に、出力パケット解析部105が受信する。出力パケット解析部105は受信したデバイスリクエストを解析し、パケット出力判断部108へデータライトのデバイスリクエストが発行されたことを通知する。
パケット出力判断部108は、データライトのデバイスリクエストが発行されたため、デバイスリクエストをUSBバス1に出力し、出力されたデバイスリクエストに対するハンドシェークパケットがFDDドライブ3から返却されると判断する(ステップSt11:YES)。
その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に、保存していたデバイスリクエストをUSBバス1に出力するよう指示し、マルチプレクサ104をUSBバス1側に切り替える(ステップSt12)。USBバス1に出力されたデバイスリクエストは、サーバA100とサーバB200、および、USB HUB2が受信する。
サーバA100、サーバB200の入力パケット解析部111、211は受信したデバイスリクエストを解析し、データバッファ110、210のライトアドレスを生成する。USB HUB2はデバイスリクエストをFDDドライブ4に出力し、FDDドライブ4はデバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたハンドシェークパケットはUSB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。
サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ハンドシェークパケットは破棄される。
サーバA100のUSBコントローラ102は、ハンドシェークパケットを受信により、FDDドライブ4がデータを受信する準備ができたと判断し、OUTトークンパケットとデータパケットを出力する。出力されたOUTトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105はパケット出力判断部108へOUTトークンパケットが発行されたことを報告する。
パケット出力判断部108は、OUTトークンパケット発行の報告を受けると(ステップSt13:YES)、出力パケット一時待避FIFO106へOUTトークンパケットと、その後USBコントローラ102が出力するデータパケットをUSBバス1へ出力するよう指示する(ステップSt14)。USBバス1に出力されたOUTトークンパケットとデータパケットは、サーバA100とサーバB200、およびUSB HUB2が受信する。
USB HUB2は受信したパケットをFDDドライブ4へ転送する。サーバA100とサーバB200が受信したOUTトークンパケットは破棄され、データパケットはデータバッファ110、210に格納される。このとき、格納するアドレスは入力パケット解析部111、211がデバイスリクエストから生成したものである。
USBコントローラ102がデータパケットを出力している間、パケット出力判断部108は、データパケットの転送完了を監視する(ステップSt15)。データパケットの転送が完了すると(ステップSt15:YES)、パケット出力判断部108は、FDDドライブ4が出力するハンドシェークパケットをUSBコントローラ102が受信できるようにするため、マルチプレクサ104をUSBバス1側に切り替える(ステップSt16)。
FDDドライブ4は、データパケットを全て受信すると、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットはUSB HUB2を経由してUSBバス1へ出力され、サーバA100とサーバB200が受信する。
サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200では破棄される。このように、USBコントローラ102がUSBデバイスにデータをライトした場合、データバッファ110、210の内容も更新されるためデータの整合が保たれる。
(他のサーバがUSBバス使用時)
最後に、図4を参照して、USBバスが他のサーバに使用されている場合の動作を説明する。
サーバB200がUSBバス1を使用する場合、最初にトークンパケットがUSBバス1を流れ、最後にハンドシェークパケットがUSBバス1を流れる。サーバA100のUSBバス監視部112は、USBバス1にトークンパケットが流れてからハンドシェークパケットが流れるまでの間、パケット出力判断部108へUSBバス1へのパケット出力を抑止するよう指示する。
パケット出力判断部108は、USBバス監視部112からパケット出力を抑止するよう指示されている間に、USBコントローラ102がパケットを出力しようとした場合(ステップSt21:YES)、出力パケット一時待避FIFO106へのパケット破棄と、ハンドシェーク生成部107へのNACKハンドシェークパケット生成を指示し、マルチプレクサ104をハンドシェーク107側へ切り替え、USBコントローラ102へNACKハンドシェークパケットを出力する(ステップSt22)。
USBコントローラ102は、NACKハンドシェークパケットを受信したため、リトライ処理を行う。
以上説明したように、本実施例では、サーバA100がCD−ROMドライブ3からデータを取得する際、USBコントローラ102が発行したデバイスリクエストを、サーバA100、サーバB200それぞれの入力パケット解析部111、211が解析し、リクエスト内のアドレス情報からデータバッファ110、210のライトアドレスを生成する。そして、CD−ROMドライブ3から前記デバイスリクエストに対する応答が帰ってくると、データバッファ110、210にCD−ROMドライブ3からの応答内容を記録する。サーバB200が同一アドレスに対するデータを取得する場合は、USBコントローラ202が発行したデバイスリクエストを出力パケット解析部205が解析し、そのリクエスト内のアドレス情報からデータバッファ210のリードアドレスを生成し、データを読み出す。
このように、本実施例では、USBデバイスの内容を各サーバにバッファすることで、各サーバがUSBデバイスを同時に使用することを可能とする。また、各サーバにUSBデバイスのデータをキャッシュすることにより、サーバの切り替えによるオーバヘッドが減少し、さらに、USBバスの使用効率が向上するため、全サーバのソフトウェアのインストール時間を大幅に短縮することが可能となる。また、サーバを切り替えるためのスイッチ操作が不要となるため、運用の手間が削減できる。
従って、本実施例によれば、複数のホストとなるサーバがUSBデバイスを共有する装置において、ホスト側にUSBデバイスのデータキャッシュ機能を持たせることにより、複数のホストがUSBデバイスを同時に使用できる。
以上説明したように、本実施例によれば、以下に記載するような効果を奏する。
第1の効果は、各サーバにデータがキャッシュされている場合、USBバスを使用することなくデータ転送が完了するので、USBバスを有効活用できることである。
第2の効果は、各サーバがUSBデバイスのデータをキャッシュしているので、サーバを切り替えることなくUSBデバイスを共有できることである。
第3の効果は、サーバを切り替えることなくUSBデバイスを共有できるので、運用の手間を削減できることである。
なお、本実施例では、2台のサーバA100、B200でUSBデバイスを共有する例を示したが、図5に示すようにインタフェース部101、201と同様のインタフェース部301、…、n01を3台目以降の各サーバC300、…、サーバn00のUSBコントローラ301、…、n01とUSBバス1との間に設ければ、3台以上のサーバ100、200、300、…、n00でも共通のUSBバス1を介してUSBデバイス(CD−ROMドライブ3、FDDドライブ4)を共有することが可能である。この場合でも、上記と同様の作用効果が得られる。
また、本実施例では、複数のサーバが共通のUSBバスを介してUSBデバイスを共有する場合を説明したが、複数のサーバがUSBバス以外の共通のバスを介してUSBデバイス以外の周辺装置を共有する場合でも適用可能である。
以上、本発明の実施例を詳細に説明したが、本発明は、代表的に例示した上述の実施例に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。
また、本実施例に係るUSBデバイス共有システムを構成する各部の少なくとも一部の機能を、プログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録する記録媒体は、本発明の範疇に含まれる。この場合のプログラムコードは、オペレーティングシステムや他のアプリケーションソフト等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。また、記録媒体としては、ハードディスクやROM(Read Only Memory)のほか、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード等を用いることができる。
本発明は、例えばブレードサーバのように複数のサーバを一台のシャーシに搭載するような装置の用途にも適用できる。
本発明の実施例に係るUSBデバイス共有システムの全体構成を示すブロック図である。 本発明の実施例において、データリード時のパケット出力制御部の処理を示すフローチャートである。 本発明の実施例において、データライト時のパケット出力制御部の処理を示すフローチャートである。 本発明の実施例において、他のサーバがUSBバスを使用している時のパケット出力制御部の処理を示すフローチャートである。 本発明の実施例を3台以上のサーバに適用した場合のUSBデバイス共有システムの全体構成を示す概略ブロック図である。
符号の説明
1 USBバス
2 USB HUB
3 CD−ROMドライブ
4 FDDドライブ
100、200 サーバA、B
101、201 インタフェース部
102、202 USBコントローラ
104、204 マルチプレクサ
105、205 出力パケット解析部
106、206 出力パケット一時待避FIFO
107、207 ハンドシェーク生成部
108、208 パケット出力判断部
110、210 データバッファ
111、211 入力パケット解析部
112、212 USBバス監視部

Claims (5)

  1. 複数のサーバを有し、前記複数のサーバが共通のUSBバスを介してUSBデバイスに接続されたシステムにおいて、
    前記複数のサーバは、
    前記USBデバイスとの間でパケットを送受信するUSBコントローラと、
    前記USBコントローラと前記USBバスの間に配置されるインタフェース手段とを備え、
    前記インタフェース手段は、
    前記USBバスを流れるパケットの内容を解析する第1のパケット解析手段と、
    前記第1のパケット解析手段による前記パケットの解析結果に応じて前記複数のサーバと前記USBデバイスとの間でリード及びライトされるデータをバッファに取り込むデータ取り込み手段と、
    前記USBバスを流れるパケットを監視し、他のサーバが前記USBバスを利用していると判断できる間は前記USBバスへのパケットの出力を抑止するバス監視手段と、
    前記USBコントローラから前記USBデバイスに出力されるパケットを一時保存する一時保存手段と、
    前記USBコントローラから前記USBデバイスに出力されるデバイスリクエストを解析し、該デバイスリクエスト内のアドレス情報から前記バッファのリードアドレスを生成する第2のパケット解析手段と、
    前記第2のパケット解析手段による前記解析結果である前記バッファのリードアドレスに基づいて前記バッファを読み込み、前記USBデバイスからリードしようとするデータと同一のデータが前記バッファに存在するか否かを判断する判断手段と、
    前記バッファに前記同一のデータが存在するときに前記一時保存手段のパケットを前記USBバスに出力することなく、前記バッファから前記USBコントローラに前記同一のデータを返却するパケット出力制御手段とを備え、
    前記第1のパケット解析手段は、前記USBバスを流れるデバイスリクエストのアドレス情報から前記バッファのライトアドレスを生成し、
    前記データ取り込み手段は、前記バッファのライトアドレスに基づいて前記USBバスを流れるデータを前記バッファに取り込み、
    前記第2のパケット解析手段は、前記USBコントローラから前記USBデバイスに対するデータリードのデバイスリクエストが発行されたときに前記デバイスリクエストのアドレス情報から前記バッファのリードアドレスを生成し、
    前記判断手段は、前記バッファのリードアドレスに基づいて前記バッファに前記同一のデータが存在するか否かを判断し、
    前記パケット出力制御手段は、
    前記USBコントローラに出力するためのハンドシェークパケットを生成するハンドシェーク生成部と、
    前記ハンドシェーク生成部、前記USBバス、及び前記バッファの出力側を選択的に切り替えて前記USBコントローラ側に接続するマルチプレクサとを有することを特徴とするUSBデバイス共有システム。
  2. 前記パケット出力制御手段は、
    前記USBコントローラからデータリードのデバイスリクエストが発行されたときに前記バッファに前記データリードに対応する同一のデータが存在する場合、前記デバイスリクエストを破棄するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに対するACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記ACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
    前記ACKハンドシェークパケットに応答して前記USBコントローラからINトークンパケットが発行されたときに前記INトークンパケットを破棄するように前記一時保存手段に制御指令を与え、前記バッファから前記USBコントローラに前記同一のデータを出力するように前記マルチプレクサに制御指令を与える手段と、
    前記同一のデータが出力された後にACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記ACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項記載のUSBデバイス共有システム。
  3. 前記パケット出力制御手段は、
    前記USBコントローラからデータリードのデバイスリクエストが発行されたときに前記バッファに前記データリードに対応する同一のデータが存在しないときに前記デバイスリクエストを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに応答して前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
    前記ACKハンドシェークパケットに応答して前記USBコントローラからINトークンパケットが発行されたときに前記INトークンパケットを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記INトークンパケットに応答して前記USBデバイスから前記USBバス経由で送られてくるデータパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項記載のUSBデバイス共有システム。
  4. 前記パケット出力制御手段は、
    前記USBコントローラによるデータライトのデバイスリクエストが発行されたときに前記デバイスリクエストを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに応答して前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
    前記ACKハンドシェークパケットに応答して前記USBコントローラからOUTトークンパケットが発行されたときに前記OUTトークンパケット及びこれに対応するデータパケットを前記USBバスに出力するように前記一時保存手段に制御指令を与え、
    前記データパケットの転送が完了したときに前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とを有することを特徴とする請求項乃至のいずれか1項に記載のUSBデバイス共有システム。
  5. 前記パケット出力制御手段は、
    前記USBバスが他のサーバにより使用されている間に前記USBコントローラからパケットが出力されたときに前記パケットを破棄するように前記一時保存手段に指令を与え、前記デバイスリクエストに対するNACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記NACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段をさらに有することを特徴とする請求項乃至のいずれか1項に記載のUSBデバイス共有システム。
JP2006098481A 2006-03-31 2006-03-31 Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 Expired - Fee Related JP5077624B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006098481A JP5077624B2 (ja) 2006-03-31 2006-03-31 Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006098481A JP5077624B2 (ja) 2006-03-31 2006-03-31 Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法

Publications (2)

Publication Number Publication Date
JP2007272643A JP2007272643A (ja) 2007-10-18
JP5077624B2 true JP5077624B2 (ja) 2012-11-21

Family

ID=38675372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006098481A Expired - Fee Related JP5077624B2 (ja) 2006-03-31 2006-03-31 Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法

Country Status (1)

Country Link
JP (1) JP5077624B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101705596B1 (ko) * 2010-09-14 2017-02-22 삼성전자 주식회사 Usb디바이스가 연결되는 서버 디바이스 및 디바이스 공유방법
KR101945840B1 (ko) * 2011-12-30 2019-02-12 삼성전자 주식회사 Usb 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644183A (ja) * 1992-07-22 1994-02-18 Fuji Facom Corp データ転送装置
DE59406958D1 (de) * 1993-07-09 1998-10-29 Siemens Ag Anordnung zur dezentralen Steuerung des Zugriffs von an einen Bus angeschlossenen Einheiten zum Bus
JPH0962580A (ja) * 1995-08-30 1997-03-07 Canon Inc マルチプロセッサ装置
JP2000259495A (ja) * 1999-03-09 2000-09-22 Nec Corp キャッシュメモリ制御方法及びマルチプロセッサシステム
JP2000268007A (ja) * 1999-03-15 2000-09-29 Fuji Xerox Co Ltd マルチプロセッサシステム
JP3415567B2 (ja) * 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
JP4490077B2 (ja) * 2003-11-14 2010-06-23 富士通コンポーネント株式会社 サーバシステム、その信号処理装置、そのサーバ、及びその筐体
JP4458873B2 (ja) * 2004-02-16 2010-04-28 株式会社リコー シリアルデータ転送方法とその装置
JP4211648B2 (ja) * 2004-03-22 2009-01-21 日本電気株式会社 ソフトウェアインストール方法およびシステム

Also Published As

Publication number Publication date
JP2007272643A (ja) 2007-10-18

Similar Documents

Publication Publication Date Title
CN101300556B (zh) 支持内存系统中不定的读出数据等待时间的方法和系统
US7631218B2 (en) RAID system and Rebuild/Copy back processing method thereof
JP4477906B2 (ja) ストレージシステム
US9411519B2 (en) Implementing enhanced performance flash memory devices
EP1018686A2 (en) Disk array controller
JP2008004089A (ja) ランダムデータおよび逐次データの同時ライトキャッシング
US7426588B2 (en) Storage apparatus
JP2010049502A (ja) ストレージサブシステム、及びこれを有するストレージシステム
JP2003345512A (ja) ディスク制御装置
EP1622324A1 (en) Fault tolerant data transfer in multi-node system via internodal crossbar switch
US7574565B2 (en) Transforming flush queue command to memory barrier command in disk drive
JP5077624B2 (ja) Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法
JP2006209448A (ja) ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
US7003553B2 (en) Storage control system with channel control device having data storage memory and transfer destination circuit which transfers data for accessing target cache area without passing through data storage memory
KR101491687B1 (ko) 버퍼 용량의 사용이 개선된 대량 저장 시스템
CN111176566A (zh) 一种支持queue命令的eMMC读写控制方法及存储介质
US20220269415A1 (en) Storage apparatus and data processing method therefor
US20170206178A1 (en) Information processing apparatus, method of transferring data, and non-transitory computer-readable recording medium
JP4025032B2 (ja) ディスク制御装置、および、そのデータアクセス方法
JP4768806B2 (ja) 情報処理装置、演算処理装置、制御装置及び情報処理装置の制御方法
JP5076400B2 (ja) データ処理システムおよび情報処理装置
JP4030951B2 (ja) データ二重化装置及び方法
JP4468666B2 (ja) 二重書込機能を有する装置およびストレージ制御装置
JP2001175582A (ja) ディスク制御装置
JP2005346426A (ja) データ共有ディスク装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080609

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100913

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120802

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120815

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees