JP5077624B2 - USB device sharing system, server interface device used therefor, and operation method thereof - Google Patents
USB device sharing system, server interface device used therefor, and operation method thereof Download PDFInfo
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、複数のサーバが共通のUSBバスを介してUSBデバイスに接続されたUSBデバイス共有システム、これで用いるサーバのインタフェース装置、その動作方法、その動作プログラム、及びデバイス共有システムに係り、特に複数のサーバがUSBデバイスのデータキャッシュ機能を持ち、USBデバイスを同時に使用可能としたUSBデバイス共有方式に関する。 The present invention relates to a USB device sharing system in which a plurality of servers are connected to a USB device via a common USB bus, a server interface device used in the server, an operation method thereof, an operation program thereof, and a device sharing system. The present invention relates to a USB device sharing method in which a plurality of servers have a data cache function of a USB device and the USB device can be used simultaneously.
ブレードサーバのように複数のサーバを一台のシャーシに搭載するような装置では、各サーバにCD−ROM(Compact Disk Read Only Memory)ドライブやフロッピー(登録商標)ディスクドライブ(以下、FDD)などの周辺装置を搭載すると実装面積やコストの面で問題がある。このため、シャーシに各周辺装置を一台ずつ搭載し、複数のサーバが同時にその周辺装置を使用しないようにスイッチで周辺装置を使用するサーバを切り替える方式が取られていた。 In an apparatus in which a plurality of servers are mounted on a single chassis such as a blade server, each server has a CD-ROM (Compact Disk Read Only Memory) drive, a floppy (registered trademark) disk drive (hereinafter referred to as FDD), etc. When peripheral devices are mounted, there are problems in terms of mounting area and cost. For this reason, a system has been adopted in which each peripheral device is mounted on the chassis one by one and a server that uses the peripheral device is switched by a switch so that a plurality of servers do not use the peripheral device at the same time.
サーバと周辺装置を接続するインタフェースには、現在最も普及しているためコストと装置の品揃えの点で有利なUSB(Universal Serial Bus)が普通使用される。また、サーバ用途においては、周辺装置は主にOS(オペレーティングシステム)などのソフトウェアのインストールに使用され、運用中に使用されることは少ない。 As an interface for connecting a server and peripheral devices, USB (Universal Serial Bus), which is most popular at present and is advantageous in terms of cost and assortment of devices, is usually used. In server applications, peripheral devices are mainly used for installing software such as an OS (operating system) and are rarely used during operation.
なお、本発明に関連する先行技術として、データ転送にかかる時間を短縮するようにした並列型ディジタル信号処理装置(特許文献1参照)や、コモンバス方式を採用した記憶システム(特許文献2参照)が提案されている。
しかしながら、前述したような周辺装置を使用するサーバを切り替える方式の装置では、一台ずつ順番にソフトウェアのインストールを行わなければならないため、特にサーバ台数が多くなると多大な手間と時間が必要であった。前述した先行技術は、必ずしもこのような課題を認識してなされたものではない。 However, in the apparatus for switching servers that use peripheral devices as described above, software must be installed one by one in turn, which requires a lot of labor and time especially when the number of servers increases. . The prior art described above has not necessarily been made by recognizing such a problem.
本発明は、このような従来の事情を考慮してなされたもので、複数のサーバが同一の周辺装置を使用するシステムにおいて、サーバ台数に拠らず全サーバのソフトウェアのインストール等のデータ転送時間を大幅に短縮し、運用の手間と時間を削減することを目的とする。 The present invention has been made in consideration of such a conventional situation, and in a system in which a plurality of servers use the same peripheral device, data transfer time such as software installation of all servers regardless of the number of servers. The purpose is to reduce the time and labor of operation significantly.
上記目的を達成するため、本発明に係る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コントローラ側に接続するマルチプレクサとを有することを特徴とする。 In order to achieve the above object, a USB device sharing system according to the present invention includes a plurality of servers, and the plurality of servers are connected to a USB device via a common USB bus. A USB controller that transmits and receives packets to and from the USB device; and an interface unit disposed between the USB controller and the USB bus, wherein the interface unit analyzes the contents of the packet flowing through the USB bus. First packet analysis means that performs data capture, and data capture means that captures, into a buffer, data read and written between the plurality of servers and the USB device in accordance with the analysis result of the packet by the first packet analysis means And monitoring packets flowing through the USB bus, and other servers Bus monitoring means for suppressing output of packets to the USB bus while it can be determined that the USB bus is being used; temporary storage means for temporarily saving packets output from the USB controller to the USB device; Analyzing a device request output from the USB controller to the USB device and generating a read address of the buffer from address information in the device request; and the second packet analyzing unit A determination unit that reads the buffer based on a read address of the buffer that is an analysis result and determines whether or not the same data as the data to be read from the USB device exists in the buffer; When the same data exists, Device without outputting the packet unit to the USB bus, and a packet output control means for returning the same data to the USB controller from said buffer, said first packet analysis means, through said USB bus The buffer write address is generated from the address information of the request, the data fetching means fetches data flowing through the USB bus into the buffer based on the buffer write address, and the second packet analyzing means When a device request for data read to the USB device is issued from the USB controller, the read address of the buffer is generated from the address information of the device request, and the determination unit is configured to generate the buffer based on the read address of the buffer. The packet output control means includes a handshake generation unit for generating a handshake packet for output to the USB controller, the handshake generation unit, the USB bus, and And a multiplexer that selectively switches the output side of the buffer and connects to the USB controller side .
本発明によれば、複数のサーバが同一の周辺装置を使用するシステムにおいて、サーバ台数に拠らず全サーバのソフトウェアのインストール等のデータ転送時間を大幅に短縮し、運用の手間と時間を削減することができる。 According to the present invention, in a system in which a plurality of servers use the same peripheral device, data transfer time such as software installation of all servers is greatly reduced regardless of the number of servers, and operation time and effort are reduced. can do.
次に、本発明に係るUSBデバイス共有システム、これで用いるサーバのインタフェース装置及びその動作方法を実施するための最良の形態について図面を参照して詳細に説明する。 Next, a USB device sharing system according to the present invention, a server interface apparatus used therewith, and a best mode for carrying out the operation method will be described in detail with reference to the drawings.
図1を参照すると、本発明の一実施例としてのUSBデバイス共有システムのブロック図が示されている。 Referring to FIG. 1, a block diagram of a USB device sharing system as an embodiment of the present invention is shown.
図において、サーバA100とサーバB200は、全く同一のハードウェア構成となっており、USBバス1を介してUSB HUB(USBハブ)2に接続されている。USB HUB2には、USBデバイスであるCD−ROMドライブ3とFDDドライブ4が接続され、USBバス1、USB HUB2を介してサーバA100、サーバB200に共有される。
In the figure, the
サーバA100は、USBコントローラ102と、これとUSBバス1との間に設けられるインタフェース部(本発明のインタフェース手段又は装置を成す)101とを備える。なお、USBコントローラ102と、インタフェース部101とは、それぞれの機能を実現可能な構成であれば、一体の装置でも、或いは別体の装置でも、いずれでも構成することが可能である。
The server A 100 includes a
インタフェース部101は、マルチプレクサ104、出力パケット解析部105、出力パケット一時待避FIFO(First in First out)(FIFOバッファ)106、ハンドシェーク生成部107、パケット出力判断部108、データバッファ110、入力リクエスト解析部111、及びUSBバス監視部112を備える。これら各部の少なくとも一部の機能は、プロセッサ(例えばCPU(Central Processing Unit))により実行されるプログラムコードで実現することが可能である。この場合、プロセッサ及びプログラムコードが構成要素として含まれる。
The
USBコントローラ102が出力したデバイスリクエストは、出力パケット解析部105と出力パケット一時待避FIFO106が受信する。
The device request output from the
出力パケット解析部105は、USBコントローラ102が出力したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成する。また、USBコントローラ102が出力したデバイスリクエスト、トークンパケットの種類をパケット出力判断部108へ報告する。
The output
出力パケット一時待避FIFO106は、USBコントローラ102が出力したパケットを一時的に保存し、パケット出力判断部108の指示に応じて、パケットをUSBバス1に出力するか破棄するかのどちらかの処理を行う。
The output packet temporary save FIFO 106 temporarily stores the packet output from the
パケット出力判断部108は、出力パケット解析部105から受け取るパケットの情報とデータバッファ110のデータ格納状況とUSBバス監視部112から受け取るUSBバスの使用状況から、出力パケット一時待避FIFO106に保存されているパケットをUSBバス1に出力するかどうかの判断と、マルチプレクサ104をどの向きに切り替えるかの判断と、ハンドシェーク生成部107がどのハンドシェークを生成するかの判断とを行い、その状況に応じて指示を出す。
The packet
USBバス監視部112は、USBバス1が使用中かどうかを監視し、USBバス1の使用状況をパケット出力判断部108に伝える。
The USB
入力リクエスト解析部111は、USBバス1に流れるデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のライトアドレスを生成する。
The input
データバッファ110は、USBバス1に流れるデータパケットを入力パケット解析部111から指定されたアドレスへ書き込み、出力パケット解析部105が指定したアドレスのデータをマルチプレクサ104へ出力する。また、出力パケット解析部105が指定したアドレスにデータが格納されているかどうかをパケット出力判断部108へ報告する。
The
ハンドシェーク生成部107は、パケット出力判断部108の指示に従い、ACKまたはNACKハンドシェークパケットを生成する。
The
マルチプレクサ104は、パケット出力判断部108の指示に応じて、USBバス1から入力したパケット、データバッファ110が出力したデータパケット、ハンドシェーク生成部107が生成したハンドシェークパケットのいずれかから、USBコントローラ102に出力するパケットを選択する。
In response to an instruction from the packet
サーバB200も、上記のサーバA100と同一の構成であり、USBコントローラ202及びインタフェース部201を備える。インタフェース部201は、マルチプレクサ204、出力パケット解析部205、出力パケット一時待避FIFO206、ハンドシェーク生成部207、パケット出力判断部208、データバッファ210、入力リクエスト解析部211、及びUSBバス監視部212を備える。これら各部の機能は、上記のサーバA100の各部の機能と同一であるため、その説明は省略する。
The
次に、図1の回路の動作について、図2〜図4を参照して説明する。図2〜図4は、パケット出力判断部108の処理動作を示す。
(データリード時)
最初に、図2を参照して、USBデバイスからデータをリードする場合の動作を説明する。
Next, the operation of the circuit of FIG. 1 will be described with reference to FIGS. 2 to 4 show the processing operation of the packet
(When reading data)
First, an operation when data is read from a USB device will be described with reference to FIG.
まず、サーバA100がCD−ROMドライブ3からデータをリードする場合、USBコントローラ102は、最初にデバイスリクエストを発行する。デバイスリクエストは、トークンパケットとデータパケットから構成される。USBコントローラ102が出力したデバイスリクエストは、パケット一時待避FIFO106に保存されると同時に、出力パケット解析部105が受信する。
First, when the
出力パケット解析部105は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成すると同時に、パケット出力判断部108へデータリードのデバイスリクエストが発行されたことを通知する。データバッファ110は、出力パケット解析部105により生成されたリードアドレスに対応したデータが格納されているかどうかをパケット出力判断部108に通知する。ここで、データバッファ110にデータが格納されていない場合と、既に格納されている場合とで処理が分かれる。
The output
データバッファ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が受信する。
When data is not stored in the
サーバA100、サーバB200の入力パケット解析部111、211は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110、210のライトアドレスを生成する。USB HUB2は、受信したデバイスリクエストをCD−ROM3に出力し、CD−ROM3は、デバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットは、USB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。
The input
サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットは、USBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ACKハンドシェークパケットは破棄される。
In the server A100, since the
サーバA100のUSBコントローラ102は、ACKハンドシェークパケット受信により、CD−ROMドライブ3がデータパケットを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。
Upon receiving the ACK handshake packet, the
パケット出力判断部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が受信する。
When receiving the IN token packet issuance report (step St4: YES), the packet
サーバA100、サーバB200のデータバッファ110、210は、入力パケット解析部111、211が指示したアドレスへデータパケットを格納する。サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、データパケットはバッファ110に格納されると共にUSBコントローラ102へ出力される。
The data buffers 110 and 210 of the
USBコントローラ102は、データパケットを全て受信するとACKハンドシェークパケットを出力する。出力されたACKハンドシェークはINトークンと同様の手順でCD−ROMドライブ3へ転送され、CD−ROMドライブ3からのデータリードが完了する。この時点で、サーバA100とサーバB200のデータバッファ110、210にCD−ROMドライブ3のデータが格納された状態となる。
When the
データバッファ110にデータが格納されている場合、パケット出力判断部108は、データリードのデバイスリクエストが発行されたことと、データバッファ110にデータパケットが格納されていることの二点の条件より、デバイスリクエストをUSBバス1に出力しないで、データバッファ110に格納されたデータパケットをUSBコントローラ102に出力すると判断する(ステップSt1:YES、ステップSt2:YES)。その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に保存していたデバイスリクエストを破棄し、ACKハンドシェークパケットを生成するようハンドシェーク生成部107に指示し、マルチプレクサ104をハンドシェーク生成部107側に切り替える(ステップSt6)。生成されたACKハンドシェークパケットは、マルチプレクサ104を経由し、USBコントローラ102へ出力される。
When data is stored in the
USBコントローラ102は、ハンドシェークパケット受信によりCD−ROMドライブ3がデータを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。
The
パケット出力判断部108は、INトークンパケット発行の報告を受けると(ステップSt7:YES)、出力パケット一時待避FIFO106へINトークンパケットを破棄するよう指示し、マルチプレクサ104をデータバッファ110側へ切り替える(ステップSt8)。データバッファ110が出力したデータパケットはマルチプレクサ104を経由してUSBコントローラ102へ出力されると同時にパケット出力判断部108により監視される。
When receiving the report of the IN token packet issuance (step St7: YES), the packet
続いて、パケット出力判断部108は、データパケットが全て出力されると(ステップSt9:YES)、ハンドシェーク生成部107へACKハンドシェークパケットを生成するよう指示し、マルチプレクサ104をハンドシェーク生成部107側へ切り替える(ステップSt10)。生成されたACKハンドシェークをUSBコントローラ102が受信し、データリードが完了する。このように、データバッファ110に既にデータが格納されている場合、USBバス1には全くパケットが流れない。
(データライト時)
次に、図3を参照して、USBデバイスにデータをライトする場合の動作を説明する。
Subsequently, when all the data packets are output (step St9: YES), the packet
(When writing data)
Next, an operation when data is written to the USB device will be described with reference to FIG.
サーバA100がFDDドライブ4へデータをライトする場合、USBコントローラ102は最初にデバイスリクエストを発行する。USBコントローラ102が出力したデバイスリクエストは、パケット一時待避FIFO106に保存されると同時に、出力パケット解析部105が受信する。出力パケット解析部105は受信したデバイスリクエストを解析し、パケット出力判断部108へデータライトのデバイスリクエストが発行されたことを通知する。
When the server A100 writes data to the
パケット出力判断部108は、データライトのデバイスリクエストが発行されたため、デバイスリクエストをUSBバス1に出力し、出力されたデバイスリクエストに対するハンドシェークパケットがFDDドライブ3から返却されると判断する(ステップSt11:YES)。
Since the device request for data write has been issued, the packet
その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に、保存していたデバイスリクエストをUSBバス1に出力するよう指示し、マルチプレクサ104をUSBバス1側に切り替える(ステップSt12)。USBバス1に出力されたデバイスリクエストは、サーバA100とサーバB200、および、USB HUB2が受信する。
Based on the determination result, the packet
サーバA100、サーバB200の入力パケット解析部111、211は受信したデバイスリクエストを解析し、データバッファ110、210のライトアドレスを生成する。USB HUB2はデバイスリクエストをFDDドライブ4に出力し、FDDドライブ4はデバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたハンドシェークパケットはUSB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。
The input
サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ハンドシェークパケットは破棄される。
In the server A100, since the
サーバA100のUSBコントローラ102は、ハンドシェークパケットを受信により、FDDドライブ4がデータを受信する準備ができたと判断し、OUTトークンパケットとデータパケットを出力する。出力されたOUTトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105はパケット出力判断部108へOUTトークンパケットが発行されたことを報告する。
The
パケット出力判断部108は、OUTトークンパケット発行の報告を受けると(ステップSt13:YES)、出力パケット一時待避FIFO106へOUTトークンパケットと、その後USBコントローラ102が出力するデータパケットをUSBバス1へ出力するよう指示する(ステップSt14)。USBバス1に出力されたOUTトークンパケットとデータパケットは、サーバA100とサーバB200、およびUSB HUB2が受信する。
When receiving the report of the OUT token packet issuance (step St13: YES), the packet
USB HUB2は受信したパケットをFDDドライブ4へ転送する。サーバA100とサーバB200が受信したOUTトークンパケットは破棄され、データパケットはデータバッファ110、210に格納される。このとき、格納するアドレスは入力パケット解析部111、211がデバイスリクエストから生成したものである。
The
USBコントローラ102がデータパケットを出力している間、パケット出力判断部108は、データパケットの転送完了を監視する(ステップSt15)。データパケットの転送が完了すると(ステップSt15:YES)、パケット出力判断部108は、FDDドライブ4が出力するハンドシェークパケットをUSBコントローラ102が受信できるようにするため、マルチプレクサ104をUSBバス1側に切り替える(ステップSt16)。
While the
FDDドライブ4は、データパケットを全て受信すると、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットはUSB HUB2を経由してUSBバス1へ出力され、サーバA100とサーバB200が受信する。
When all the data packets are received, the
サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200では破棄される。このように、USBコントローラ102がUSBデバイスにデータをライトした場合、データバッファ110、210の内容も更新されるためデータの整合が保たれる。
(他のサーバがUSBバス使用時)
最後に、図4を参照して、USBバスが他のサーバに使用されている場合の動作を説明する。
In the server A100, since the
(When other server is using USB bus)
Finally, with reference to FIG. 4, the operation when the USB bus is used by another server will be described.
サーバB200がUSBバス1を使用する場合、最初にトークンパケットがUSBバス1を流れ、最後にハンドシェークパケットがUSBバス1を流れる。サーバA100のUSBバス監視部112は、USBバス1にトークンパケットが流れてからハンドシェークパケットが流れるまでの間、パケット出力判断部108へUSBバス1へのパケット出力を抑止するよう指示する。
When the
パケット出力判断部108は、USBバス監視部112からパケット出力を抑止するよう指示されている間に、USBコントローラ102がパケットを出力しようとした場合(ステップSt21:YES)、出力パケット一時待避FIFO106へのパケット破棄と、ハンドシェーク生成部107へのNACKハンドシェークパケット生成を指示し、マルチプレクサ104をハンドシェーク107側へ切り替え、USBコントローラ102へNACKハンドシェークパケットを出力する(ステップSt22)。
When the
USBコントローラ102は、NACKハンドシェークパケットを受信したため、リトライ処理を行う。
Since the
以上説明したように、本実施例では、サーバ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のリードアドレスを生成し、データを読み出す。
As described above, in this embodiment, when the
このように、本実施例では、USBデバイスの内容を各サーバにバッファすることで、各サーバがUSBデバイスを同時に使用することを可能とする。また、各サーバにUSBデバイスのデータをキャッシュすることにより、サーバの切り替えによるオーバヘッドが減少し、さらに、USBバスの使用効率が向上するため、全サーバのソフトウェアのインストール時間を大幅に短縮することが可能となる。また、サーバを切り替えるためのスイッチ操作が不要となるため、運用の手間が削減できる。 Thus, in this embodiment, the contents of the USB device are buffered in each server, so that each server can use the USB device at the same time. Also, by caching the USB device data in each server, the overhead due to server switching is reduced, and the USB bus usage efficiency is improved, so the software installation time for all servers can be greatly reduced. It becomes possible. In addition, since the switch operation for switching the servers is not necessary, the operation time can be reduced.
従って、本実施例によれば、複数のホストとなるサーバがUSBデバイスを共有する装置において、ホスト側にUSBデバイスのデータキャッシュ機能を持たせることにより、複数のホストがUSBデバイスを同時に使用できる。 Therefore, according to the present embodiment, in a device in which a plurality of servers serving as a host share a USB device, the host device can have a USB device data cache function so that a plurality of hosts can use the USB device simultaneously.
以上説明したように、本実施例によれば、以下に記載するような効果を奏する。 As described above, according to the present embodiment, the following effects can be obtained.
第1の効果は、各サーバにデータがキャッシュされている場合、USBバスを使用することなくデータ転送が完了するので、USBバスを有効活用できることである。 The first effect is that when data is cached in each server, the data transfer is completed without using the USB bus, so that the USB bus can be used effectively.
第2の効果は、各サーバがUSBデバイスのデータをキャッシュしているので、サーバを切り替えることなくUSBデバイスを共有できることである。 The second effect is that since each server caches the data of the USB device, the USB device can be shared without switching the server.
第3の効果は、サーバを切り替えることなくUSBデバイスを共有できるので、運用の手間を削減できることである。 The third effect is that since the USB device can be shared without switching the server, the operation time can be reduced.
なお、本実施例では、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)を共有することが可能である。この場合でも、上記と同様の作用効果が得られる。
In the present embodiment, an example in which a USB device is shared by two servers A100 and B200 has been shown. However, three
また、本実施例では、複数のサーバが共通のUSBバスを介してUSBデバイスを共有する場合を説明したが、複数のサーバがUSBバス以外の共通のバスを介してUSBデバイス以外の周辺装置を共有する場合でも適用可能である。 In this embodiment, a case where a plurality of servers share a USB device via a common USB bus has been described. However, a plurality of servers can connect peripheral devices other than the USB device via a common bus other than the USB bus. It is applicable even when sharing.
以上、本発明の実施例を詳細に説明したが、本発明は、代表的に例示した上述の実施例に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。 As mentioned above, although the Example of this invention was described in detail, this invention is not limited to the above-mentioned Example illustrated typically, and those skilled in the art will be based on description content of a claim. The present invention can be modified and changed into various modes without departing from the gist of the present invention. These modified examples and modified examples also belong to the scope of the right of the present invention.
また、本実施例に係るUSBデバイス共有システムを構成する各部の少なくとも一部の機能を、プログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録する記録媒体は、本発明の範疇に含まれる。この場合のプログラムコードは、オペレーティングシステムや他のアプリケーションソフト等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。また、記録媒体としては、ハードディスクやROM(Read Only Memory)のほか、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード等を用いることができる。 Further, in the case where at least a part of functions of each unit constituting the USB device sharing system according to the present embodiment is realized using a program code, the program code and a recording medium for recording the program code are included in the scope of the present invention. It is. The program code in this case includes those program codes when the above functions are realized in cooperation with an operating system or other application software. As a recording medium, a hard disk, a ROM (Read Only Memory), a flexible disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, and the like can be used.
本発明は、例えばブレードサーバのように複数のサーバを一台のシャーシに搭載するような装置の用途にも適用できる。 The present invention can also be applied to a device such as a blade server in which a plurality of servers are mounted on a single chassis.
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バス監視部
1
3 CD-
101, 201
107, 207
Claims (5)
前記複数のサーバは、
前記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デバイス共有システム。 In a system having a plurality of servers, wherein the plurality of servers are connected to a USB device via a common USB bus,
The plurality of servers are:
A USB controller that transmits and receives packets to and from the USB device;
An interface means arranged between the USB controller and the USB bus,
The interface means includes
First packet analysis means for analyzing the content of a packet flowing through the USB bus;
Data fetching means for fetching into the buffer data read and written between the plurality of servers and the USB device according to the analysis result of the packet by the first packet analyzing means;
A bus monitoring unit that monitors packets flowing through the USB bus and suppresses output of packets to the USB bus while it can be determined that another server is using the USB bus;
Temporary storage means for temporarily storing packets output from the USB controller to the USB device;
A second packet analyzing means for analyzing a device request output from the USB controller to the USB device, and generating a read address of the buffer from address information in the device request;
The buffer is read based on the read address of the buffer, which is the analysis result by the second packet analysis means, and it is determined whether or not the same data as the data to be read from the USB device exists in the buffer. A judgment means to
Packet output control means for returning the same data from the buffer to the USB controller without outputting the packet of the temporary storage means to the USB bus when the same data exists in the buffer;
The first packet analysis means generates a write address of the buffer from address information of a device request flowing through the USB bus,
The data capture means captures data flowing through the USB bus based on the write address of the buffer into the buffer,
The second packet analyzing means generates a read address of the buffer from address information of the device request when a device request for data read to the USB device is issued from the USB controller,
The determining means determines whether the same data exists in the buffer based on a read address of the buffer;
The packet output control means includes
A handshake generator for generating a handshake packet for output to the USB controller;
The handshake generation unit, the USB bus, and U SB device sharing system that, comprising a multiplexer that connects to the USB controller side output selectively switching of said buffer.
前記USBコントローラからデータリードのデバイスリクエストが発行されたときに前記バッファに前記データリードに対応する同一のデータが存在する場合、前記デバイスリクエストを破棄するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに対するACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記ACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
前記ACKハンドシェークパケットに応答して前記USBコントローラからINトークンパケットが発行されたときに前記INトークンパケットを破棄するように前記一時保存手段に制御指令を与え、前記バッファから前記USBコントローラに前記同一のデータを出力するように前記マルチプレクサに制御指令を与える手段と、
前記同一のデータが出力された後にACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記ACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項1記載のUSBデバイス共有システム。 The packet output control means includes
When the same data corresponding to the data read exists in the buffer when a device request for data read is issued from the USB controller, a control command is given to the temporary storage unit to discard the device request, A control command is given to the handshake generator to generate an ACK handshake packet for the device request, and a control command is given to the multiplexer to output the ACK handshake packet generated by the handshake generator to the USB controller Means,
When an IN token packet is issued from the USB controller in response to the ACK handshake packet, a control command is given to the temporary storage unit so as to discard the IN token packet, and from the buffer to the USB controller Means for providing a control command to the multiplexer to output data;
The multiplexer gives a control command to the handshake generation unit so as to generate an ACK handshake packet after the same data is output, and outputs the ACK handshake packet generated by the handshake generation unit to the USB controller USB device sharing system according to claim 1, further comprising a means for providing a control command to.
前記USBコントローラからデータリードのデバイスリクエストが発行されたときに前記バッファに前記データリードに対応する同一のデータが存在しないときに前記デバイスリクエストを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに応答して前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
前記ACKハンドシェークパケットに応答して前記USBコントローラからINトークンパケットが発行されたときに前記INトークンパケットを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記INトークンパケットに応答して前記USBデバイスから前記USBバス経由で送られてくるデータパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項2記載のUSBデバイス共有システム。 The packet output control means includes
When the device request for data read is issued from the USB controller, the temporary storage means controls to output the device request to the USB bus when the same data corresponding to the data read does not exist in the buffer Means for giving a control command to the multiplexer so as to output an ACK handshake packet sent from the USB device via the USB bus to the USB controller in response to the device request;
When an IN token packet is issued from the USB controller in response to the ACK handshake packet, a control command is given to the temporary storage unit so that the IN token packet is output to the USB bus, and the response to the IN token packet 3. The USB device according to claim 2 , further comprising means for giving a control command to the multiplexer so as to output a data packet sent from the USB device via the USB bus to the USB controller. Shared system.
前記USBコントローラによるデータライトのデバイスリクエストが発行されたときに前記デバイスリクエストを前記USBバスに出力するように前記一時保存手段に制御指令を与え、前記デバイスリクエストに応答して前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段と、
前記ACKハンドシェークパケットに応答して前記USBコントローラからOUTトークンパケットが発行されたときに前記OUTトークンパケット及びこれに対応するデータパケットを前記USBバスに出力するように前記一時保存手段に制御指令を与え、
前記データパケットの転送が完了したときに前記USBデバイスから前記USBバス経由で送られてくるACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段とを有することを特徴とする請求項1乃至3のいずれか1項に記載のUSBデバイス共有システム。 The packet output control means includes
When a device request for data write by the USB controller is issued, a control command is given to the temporary storage unit to output the device request to the USB bus, and the USB device responds to the device request from the USB device. Means for giving a control command to the multiplexer so as to output an ACK handshake packet sent via the bus to the USB controller;
When a OUT token packet is issued from the USB controller in response to the ACK handshake packet, a control command is given to the temporary storage unit so that the OUT token packet and a data packet corresponding to the OUT token packet are output to the USB bus. ,
And a means for giving a control command to the multiplexer so as to output an ACK handshake packet sent from the USB device via the USB bus to the USB controller when transfer of the data packet is completed. The USB device sharing system according to any one of claims 1 to 3 .
前記USBバスが他のサーバにより使用されている間に前記USBコントローラからパケットが出力されたときに前記パケットを破棄するように前記一時保存手段に指令を与え、前記デバイスリクエストに対するNACKハンドシェークパケットを生成するように前記ハンドシェーク生成部に制御指令を与え、前記ハンドシェーク生成部により生成された前記NACKハンドシェークパケットを前記USBコントローラに出力するように前記マルチプレクサに制御指令を与える手段をさらに有することを特徴とする請求項1乃至4のいずれか1項に記載のUSBデバイス共有システム。 The packet output control means includes
Instructs the temporary storage means to discard the packet when a packet is output from the USB controller while the USB bus is being used by another server, and generates a NACK handshake packet for the device request Means for giving a control command to the handshake generation unit and giving a control command to the multiplexer so as to output the NACK handshake packet generated by the handshake generation unit to the USB controller. The USB device sharing system according to any one of claims 1 to 4 .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006098481A JP5077624B2 (en) | 2006-03-31 | 2006-03-31 | USB device sharing system, server interface device used therefor, and operation method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006098481A JP5077624B2 (en) | 2006-03-31 | 2006-03-31 | USB device sharing system, server interface device used therefor, and operation method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007272643A JP2007272643A (en) | 2007-10-18 |
| JP5077624B2 true JP5077624B2 (en) | 2012-11-21 |
Family
ID=38675372
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006098481A Expired - Fee Related JP5077624B2 (en) | 2006-03-31 | 2006-03-31 | USB device sharing system, server interface device used therefor, and operation method thereof |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5077624B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101705596B1 (en) * | 2010-09-14 | 2017-02-22 | 삼성전자 주식회사 | Server device connecting usb device and device sharing method |
| KR101945840B1 (en) * | 2011-12-30 | 2019-02-12 | 삼성전자 주식회사 | Server device connecting usb device, client device connecting server device, device driving method and device sharing method |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0644183A (en) * | 1992-07-22 | 1994-02-18 | Fuji Facom Corp | Data transfer equipment |
| DE59406958D1 (en) * | 1993-07-09 | 1998-10-29 | Siemens Ag | Arrangement for decentralized control of access to the bus from units connected to a bus |
| JPH0962580A (en) * | 1995-08-30 | 1997-03-07 | Canon Inc | Multiprocessor equipment |
| JP2000259495A (en) * | 1999-03-09 | 2000-09-22 | Nec Corp | Cache memory control method and multiprocessor system |
| JP2000268007A (en) * | 1999-03-15 | 2000-09-29 | Fuji Xerox Co Ltd | Multiprocessor system |
| JP3415567B2 (en) * | 2000-06-21 | 2003-06-09 | エヌイーシーマイクロシステム株式会社 | USB transfer control method and USB controller |
| JP4490077B2 (en) * | 2003-11-14 | 2010-06-23 | 富士通コンポーネント株式会社 | Server system, signal processing apparatus thereof, server thereof, and casing thereof |
| JP4458873B2 (en) * | 2004-02-16 | 2010-04-28 | 株式会社リコー | Serial data transfer method and apparatus |
| JP4211648B2 (en) * | 2004-03-22 | 2009-01-21 | 日本電気株式会社 | Software installation method and system |
-
2006
- 2006-03-31 JP JP2006098481A patent/JP5077624B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2007272643A (en) | 2007-10-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101300556B (en) | Method and system for supporting indeterminate read data latency in memory systems | |
| US7631218B2 (en) | RAID system and Rebuild/Copy back processing method thereof | |
| JP4477906B2 (en) | Storage system | |
| US9411519B2 (en) | Implementing enhanced performance flash memory devices | |
| EP1018686A2 (en) | Disk array controller | |
| JP2008004089A (en) | Simultaneous write caching of random data and sequential data | |
| US7426588B2 (en) | Storage apparatus | |
| JP2010049502A (en) | Storage subsystem and storage system having the same | |
| JP2003345512A (en) | Disk controller | |
| 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 (en) | USB device sharing system, server interface device used therefor, and operation method thereof | |
| JP2006209448A (en) | Direct memory access control method, direct memory access control device, information processing system, program | |
| 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 (en) | Mass storage system with improved usage of buffer capacity | |
| CN111176566A (en) | eMMC read-write control method supporting queue command and storage medium | |
| 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 (en) | Disk control device and data access method thereof | |
| JP4768806B2 (en) | Information processing apparatus, arithmetic processing apparatus, control apparatus, and control method for information processing apparatus | |
| JP5076400B2 (en) | Data processing system and information processing apparatus | |
| JP4030951B2 (en) | Data duplication apparatus and method | |
| JP4468666B2 (en) | Apparatus and storage control apparatus having dual writing function | |
| JP2001175582A (en) | Disk controller | |
| JP2005346426A (en) | Data sharing disk device |
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 |