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 device sharing system, server interface device used therefor, and operation method thereof - Google Patents
[go: Go Back, main page]

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 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
Japanese (ja)
Other versions
JP2007272643A (en
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/en
Publication of JP2007272643A publication Critical patent/JP2007272643A/en
Application granted granted Critical
Publication of JP5077624B2 publication Critical patent/JP5077624B2/en
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デバイス共有方式に関する。   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参照)が提案されている。
特開平04−138554号公報 特許第3264465号明細書
As a prior art related to the present invention, there is a parallel digital signal processing device (see Patent Document 1) that shortens the time required for data transfer, and a storage system (see Patent Document 2) that adopts a common bus system. Proposed.
Japanese Patent Laid-Open No. 04-138554 Japanese Patent No. 3264465

しかしながら、前述したような周辺装置を使用するサーバを切り替える方式の装置では、一台ずつ順番にソフトウェアのインストールを行わなければならないため、特にサーバ台数が多くなると多大な手間と時間が必要であった。前述した先行技術は、必ずしもこのような課題を認識してなされたものではない。   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 server A 100 and the server B 200 have exactly the same hardware configuration, and are connected to a USB HUB (USB hub) 2 via the USB bus 1. The USB HUB 2 is connected to the CD-ROM drive 3 and the FDD drive 4 which are USB devices, and is shared by the server A 100 and the server B 200 via the USB bus 1 and the USB HUB 2.

サーバA100は、USBコントローラ102と、これとUSBバス1との間に設けられるインタフェース部(本発明のインタフェース手段又は装置を成す)101とを備える。なお、USBコントローラ102と、インタフェース部101とは、それぞれの機能を実現可能な構成であれば、一体の装置でも、或いは別体の装置でも、いずれでも構成することが可能である。   The server A 100 includes a USB controller 102 and an interface unit 101 (which constitutes the interface means or apparatus of the present invention) provided between the USB controller 102 and the USB bus 1. Note that the USB controller 102 and the interface unit 101 can be configured as either an integrated device or a separate device as long as the respective functions can be realized.

インタフェース部101は、マルチプレクサ104、出力パケット解析部105、出力パケット一時待避FIFO(First in First out)(FIFOバッファ)106、ハンドシェーク生成部107、パケット出力判断部108、データバッファ110、入力リクエスト解析部111、及びUSBバス監視部112を備える。これら各部の少なくとも一部の機能は、プロセッサ(例えばCPU(Central Processing Unit))により実行されるプログラムコードで実現することが可能である。この場合、プロセッサ及びプログラムコードが構成要素として含まれる。   The interface unit 101 includes a multiplexer 104, an output packet analysis unit 105, an output packet temporary save FIFO (First in First out) (FIFO buffer) 106, a handshake generation unit 107, a packet output determination unit 108, a data buffer 110, and an input request analysis unit. 111 and a USB bus monitoring unit 112. At least some of the functions of these units can be realized by program code executed by a processor (for example, a CPU (Central Processing Unit)). In this case, a processor and program code are included as components.

USBコントローラ102が出力したデバイスリクエストは、出力パケット解析部105と出力パケット一時待避FIFO106が受信する。   The device request output from the USB controller 102 is received by the output packet analysis unit 105 and the output packet temporary save FIFO 106.

出力パケット解析部105は、USBコントローラ102が出力したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成する。また、USBコントローラ102が出力したデバイスリクエスト、トークンパケットの種類をパケット出力判断部108へ報告する。   The output packet analysis unit 105 analyzes the device request output from the USB controller 102 and generates the read address of the data buffer 110 from the address information in the device request. Also, the device request output from the USB controller 102 and the type of token packet are reported to the packet output determination unit 108.

出力パケット一時待避FIFO106は、USBコントローラ102が出力したパケットを一時的に保存し、パケット出力判断部108の指示に応じて、パケットをUSBバス1に出力するか破棄するかのどちらかの処理を行う。   The output packet temporary save FIFO 106 temporarily stores the packet output from the USB controller 102 and performs either processing of outputting the packet to the USB bus 1 or discarding it according to an instruction from the packet output determination unit 108. Do.

パケット出力判断部108は、出力パケット解析部105から受け取るパケットの情報とデータバッファ110のデータ格納状況とUSBバス監視部112から受け取るUSBバスの使用状況から、出力パケット一時待避FIFO106に保存されているパケットをUSBバス1に出力するかどうかの判断と、マルチプレクサ104をどの向きに切り替えるかの判断と、ハンドシェーク生成部107がどのハンドシェークを生成するかの判断とを行い、その状況に応じて指示を出す。   The packet output determination unit 108 is stored in the output packet temporary save FIFO 106 based on the packet information received from the output packet analysis unit 105, the data storage status of the data buffer 110, and the USB bus usage status received from the USB bus monitoring unit 112. It is determined whether to output the packet to the USB bus 1, which direction the multiplexer 104 is switched to, and which handshake the handshake generation unit 107 generates, and an instruction is given according to the situation. put out.

USBバス監視部112は、USBバス1が使用中かどうかを監視し、USBバス1の使用状況をパケット出力判断部108に伝える。   The USB bus monitoring unit 112 monitors whether the USB bus 1 is in use, and notifies the packet output determination unit 108 of the usage status of the USB bus 1.

入力リクエスト解析部111は、USBバス1に流れるデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のライトアドレスを生成する。   The input request analysis unit 111 analyzes a device request flowing through the USB bus 1 and generates a write address of the data buffer 110 from address information in the device request.

データバッファ110は、USBバス1に流れるデータパケットを入力パケット解析部111から指定されたアドレスへ書き込み、出力パケット解析部105が指定したアドレスのデータをマルチプレクサ104へ出力する。また、出力パケット解析部105が指定したアドレスにデータが格納されているかどうかをパケット出力判断部108へ報告する。   The data buffer 110 writes the data packet flowing through the USB bus 1 to the address specified by the input packet analysis unit 111, and outputs the data at the address specified by the output packet analysis unit 105 to the multiplexer 104. Further, it reports to the packet output determination unit 108 whether data is stored at the address designated by the output packet analysis unit 105.

ハンドシェーク生成部107は、パケット出力判断部108の指示に従い、ACKまたはNACKハンドシェークパケットを生成する。   The handshake generation unit 107 generates an ACK or NACK handshake packet in accordance with an instruction from the packet output determination unit 108.

マルチプレクサ104は、パケット出力判断部108の指示に応じて、USBバス1から入力したパケット、データバッファ110が出力したデータパケット、ハンドシェーク生成部107が生成したハンドシェークパケットのいずれかから、USBコントローラ102に出力するパケットを選択する。   In response to an instruction from the packet output determination unit 108, the multiplexer 104 sends the packet input from the USB bus 1, the data packet output from the data buffer 110, or the handshake packet generated by the handshake generation unit 107 to the USB controller 102. Select the packet to be output.

サーバB200も、上記のサーバA100と同一の構成であり、USBコントローラ202及びインタフェース部201を備える。インタフェース部201は、マルチプレクサ204、出力パケット解析部205、出力パケット一時待避FIFO206、ハンドシェーク生成部207、パケット出力判断部208、データバッファ210、入力リクエスト解析部211、及びUSBバス監視部212を備える。これら各部の機能は、上記のサーバA100の各部の機能と同一であるため、その説明は省略する。   The server B 200 has the same configuration as the server A 100 described above, and includes a USB controller 202 and an interface unit 201. The interface unit 201 includes a multiplexer 204, an output packet analysis unit 205, an output packet temporary save FIFO 206, a handshake generation unit 207, a packet output determination unit 208, a data buffer 210, an input request analysis unit 211, and a USB bus monitoring unit 212. Since the function of each part is the same as the function of each part of the server A100, description thereof is omitted.

次に、図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 output determining unit 108.
(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 server A 100 reads data from the CD-ROM drive 3, the USB controller 102 first issues a device request. The device request is composed of a token packet and a data packet. The device request output from the USB controller 102 is stored in the packet temporary save FIFO 106 and simultaneously received by the output packet analysis unit 105.

出力パケット解析部105は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110のリードアドレスを生成すると同時に、パケット出力判断部108へデータリードのデバイスリクエストが発行されたことを通知する。データバッファ110は、出力パケット解析部105により生成されたリードアドレスに対応したデータが格納されているかどうかをパケット出力判断部108に通知する。ここで、データバッファ110にデータが格納されていない場合と、既に格納されている場合とで処理が分かれる。   The output packet analysis unit 105 analyzes the received device request, generates the read address of the data buffer 110 from the address information in the device request, and at the same time, issues the data read device request to the packet output determination unit 108 To be notified. The data buffer 110 notifies the packet output determination unit 108 whether or not data corresponding to the read address generated by the output packet analysis unit 105 is stored. Here, the processing is divided between the case where data is not stored in the data buffer 110 and the case where data is already stored.

データバッファ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 data buffer 110, the packet output determination unit 108 determines that the device is based on two conditions: a data read device request is issued and data is not stored in the data buffer 110. The request is output to the USB bus 1, and it is determined that the handshake packet for the output device request is returned from the CD-ROM drive (step St1: YES, step St2: NO). Based on the determination result, the packet output determination unit 108 instructs the device request stored in the temporary packet save FIFO 106 to be output to the USB bus 1, and switches the multiplexer 104 to the USB bus 1 side (step St3). The device request output to the USB bus 1 is received by the server A100, the server B200, and the USB HUB2.

サーバA100、サーバB200の入力パケット解析部111、211は、受信したデバイスリクエストを解析し、そのデバイスリクエスト内のアドレス情報からデータバッファ110、210のライトアドレスを生成する。USB HUB2は、受信したデバイスリクエストをCD−ROM3に出力し、CD−ROM3は、デバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットは、USB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。   The input packet analysis units 111 and 211 of the server A 100 and the server B 200 analyze the received device request, and generate the write addresses of the data buffers 110 and 210 from the address information in the device request. The USB HUB 2 outputs the received device request to the CD-ROM 3, and the CD-ROM 3 outputs an ACK handshake packet because it has received the device request. The output ACK handshake packet is output to the USB bus 1 via the USB HUB 2 and received by the server A 100 and the server B 200.

サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットは、USBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ACKハンドシェークパケットは破棄される。   In the server A100, since the multiplexer 104 faces the USB bus 1, the ACK handshake packet is output to the USB controller 102. The server B 200 discards the ACK handshake packet because the multiplexer 204 does not face the USB bus 1 side.

サーバA100のUSBコントローラ102は、ACKハンドシェークパケット受信により、CD−ROMドライブ3がデータパケットを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。   Upon receiving the ACK handshake packet, the USB controller 102 of the server A 100 recognizes that the CD-ROM drive 3 is ready to output a data packet, and outputs an IN token packet. The output IN token packet is received by the output packet analysis unit 105 and the output packet temporary save FIFO 106, and the output packet analysis unit 105 reports to the packet output determination unit 108 that the IN token packet has been issued.

パケット出力判断部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 output determining unit 108 instructs the output packet temporary save FIFO 106 to output the IN token packet to the USB bus 1, and is further returned from the CD-ROM 3. The multiplexer 104 is switched to the USB bus 1 side so that the USB controller 102 can receive the data packet to be received (step St5). The IN token packet output to the USB bus 1 is received by the CD-ROM drive 3 via the USB HUB, and the CD-ROM drive 3 thereby outputs a data packet. The data packet is output to the USB bus 1 via the USB HUB 2 and received by the server A 100 and the server B 200.

サーバA100、サーバB200のデータバッファ110、210は、入力パケット解析部111、211が指示したアドレスへデータパケットを格納する。サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、データパケットはバッファ110に格納されると共にUSBコントローラ102へ出力される。   The data buffers 110 and 210 of the server A 100 and the server B 200 store data packets at addresses designated by the input packet analysis units 111 and 211. In the server A100, since the multiplexer 104 faces the USB bus 1, the data packet is stored in the buffer 110 and output to the USB controller 102.

USBコントローラ102は、データパケットを全て受信するとACKハンドシェークパケットを出力する。出力されたACKハンドシェークはINトークンと同様の手順でCD−ROMドライブ3へ転送され、CD−ROMドライブ3からのデータリードが完了する。この時点で、サーバA100とサーバB200のデータバッファ110、210にCD−ROMドライブ3のデータが格納された状態となる。   When the USB controller 102 receives all the data packets, the USB controller 102 outputs an ACK handshake packet. The output ACK handshake is transferred to the CD-ROM drive 3 in the same procedure as the IN token, and the data read from the CD-ROM drive 3 is completed. At this time, the data of the CD-ROM drive 3 is stored in the data buffers 110 and 210 of the server A100 and the server B200.

データバッファ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 data buffer 110, the packet output determination unit 108 determines that a data read device request is issued and that a data packet is stored in the data buffer 110. It is determined not to output the device request to the USB bus 1 but to output the data packet stored in the data buffer 110 to the USB controller 102 (step St1: YES, step St2: YES). Based on the determination result, the packet output determination unit 108 discards the device request stored in the packet temporary save FIFO 106, instructs the handshake generation unit 107 to generate an ACK handshake packet, and causes the multiplexer 104 to the handshake generation unit 107 side. (Step St6). The generated ACK handshake packet is output to the USB controller 102 via the multiplexer 104.

USBコントローラ102は、ハンドシェークパケット受信によりCD−ROMドライブ3がデータを出力する準備ができたと認識し、INトークンパケットを出力する。出力されたINトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105は、パケット出力判断部108へINトークンパケットが発行されたことを報告する。   The USB controller 102 recognizes that the CD-ROM drive 3 is ready to output data by receiving the handshake packet, and outputs an IN token packet. The output IN token packet is received by the output packet analysis unit 105 and the output packet temporary save FIFO 106, and the output packet analysis unit 105 reports to the packet output determination unit 108 that the IN token packet has been issued.

パケット出力判断部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 output determining unit 108 instructs the output packet temporary save FIFO 106 to discard the IN token packet, and switches the multiplexer 104 to the data buffer 110 side (step). St8). The data packet output from the data buffer 110 is output to the USB controller 102 via the multiplexer 104 and simultaneously monitored by the packet output determination unit 108.

続いて、パケット出力判断部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 output determination unit 108 instructs the handshake generation unit 107 to generate an ACK handshake packet, and switches the multiplexer 104 to the handshake generation unit 107 side. (Step St10). The USB controller 102 receives the generated ACK handshake, and the data read is completed. As described above, when data is already stored in the data buffer 110, no packet flows on the USB bus 1.
(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 FDD drive 4, the USB controller 102 first issues a device request. The device request output from the USB controller 102 is stored in the packet temporary save FIFO 106 and simultaneously received by the output packet analysis unit 105. The output packet analysis unit 105 analyzes the received device request and notifies the packet output determination unit 108 that a data write device request has been issued.

パケット出力判断部108は、データライトのデバイスリクエストが発行されたため、デバイスリクエストをUSBバス1に出力し、出力されたデバイスリクエストに対するハンドシェークパケットがFDDドライブ3から返却されると判断する(ステップSt11:YES)。   Since the device request for data write has been issued, the packet output determining unit 108 outputs the device request to the USB bus 1, and determines that the handshake packet for the output device request is returned from the FDD drive 3 (step St11: YES).

その判断結果より、パケット出力判断部108は、パケット一時待避FIFO106に、保存していたデバイスリクエストをUSBバス1に出力するよう指示し、マルチプレクサ104をUSBバス1側に切り替える(ステップSt12)。USBバス1に出力されたデバイスリクエストは、サーバA100とサーバB200、および、USB HUB2が受信する。   Based on the determination result, the packet output determination unit 108 instructs the temporary packet save FIFO 106 to output the stored device request to the USB bus 1 and switches the multiplexer 104 to the USB bus 1 side (step St12). The device request output to the USB bus 1 is received by the server A100, the server B200, and the USB HUB2.

サーバA100、サーバB200の入力パケット解析部111、211は受信したデバイスリクエストを解析し、データバッファ110、210のライトアドレスを生成する。USB HUB2はデバイスリクエストをFDDドライブ4に出力し、FDDドライブ4はデバイスリクエストを受信したため、ACKハンドシェークパケットを出力する。出力されたハンドシェークパケットはUSB HUB2を経由して、USBバス1へ出力され、サーバA100とサーバB200が受信する。   The input packet analysis units 111 and 211 of the server A 100 and the server B 200 analyze the received device request and generate the write addresses of the data buffers 110 and 210. The USB HUB 2 outputs a device request to the FDD drive 4, and since the FDD drive 4 has received the device request, it outputs an ACK handshake packet. The output handshake packet is output to the USB bus 1 via the USB HUB 2 and received by the server A 100 and the server B 200.

サーバA100は、マルチプレクサ104がUSBバス1側を向いているため、ハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200は、マルチプレクサ204がUSBバス1側を向いていないため、ハンドシェークパケットは破棄される。   In the server A100, since the multiplexer 104 faces the USB bus 1, the handshake packet is output to the USB controller 102. The server B 200 discards the handshake packet because the multiplexer 204 does not face the USB bus 1 side.

サーバA100のUSBコントローラ102は、ハンドシェークパケットを受信により、FDDドライブ4がデータを受信する準備ができたと判断し、OUTトークンパケットとデータパケットを出力する。出力されたOUTトークンパケットは、出力パケット解析部105と出力パケット一時待避FIFO106が受信し、出力パケット解析部105はパケット出力判断部108へOUTトークンパケットが発行されたことを報告する。   The USB controller 102 of the server A 100 receives the handshake packet, determines that the FDD drive 4 is ready to receive data, and outputs an OUT token packet and a data packet. The output OUT token packet is received by the output packet analysis unit 105 and the output packet temporary save FIFO 106, and the output packet analysis unit 105 reports to the packet output determination unit 108 that the OUT token packet has been issued.

パケット出力判断部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 output determining unit 108 outputs the OUT token packet to the output packet temporary save FIFO 106 and the data packet output from the USB controller 102 to the USB bus 1 thereafter. (Step St14). The server A 100, the server B 200, and the USB HUB 2 receive the OUT token packet and the data packet output to the USB bus 1.

USB HUB2は受信したパケットをFDDドライブ4へ転送する。サーバA100とサーバB200が受信したOUTトークンパケットは破棄され、データパケットはデータバッファ110、210に格納される。このとき、格納するアドレスは入力パケット解析部111、211がデバイスリクエストから生成したものである。   The USB HUB 2 transfers the received packet to the FDD drive 4. The OUT token packet received by the server A 100 and the server B 200 is discarded, and the data packet is stored in the data buffers 110 and 210. At this time, the addresses to be stored are those generated by the input packet analysis units 111 and 211 from the device request.

USBコントローラ102がデータパケットを出力している間、パケット出力判断部108は、データパケットの転送完了を監視する(ステップSt15)。データパケットの転送が完了すると(ステップSt15:YES)、パケット出力判断部108は、FDDドライブ4が出力するハンドシェークパケットをUSBコントローラ102が受信できるようにするため、マルチプレクサ104をUSBバス1側に切り替える(ステップSt16)。   While the USB controller 102 outputs the data packet, the packet output determination unit 108 monitors the completion of the data packet transfer (step St15). When the transfer of the data packet is completed (step St15: YES), the packet output determination unit 108 switches the multiplexer 104 to the USB bus 1 side so that the USB controller 102 can receive the handshake packet output from the FDD drive 4. (Step St16).

FDDドライブ4は、データパケットを全て受信すると、ACKハンドシェークパケットを出力する。出力されたACKハンドシェークパケットはUSB HUB2を経由してUSBバス1へ出力され、サーバA100とサーバB200が受信する。   When all the data packets are received, the FDD drive 4 outputs an ACK handshake packet. The output ACK handshake packet is output to the USB bus 1 via the USB HUB 2 and received by the server A 100 and the server B 200.

サーバA100では、マルチプレクサ104がUSBバス1側を向いているため、ACKハンドシェークパケットはUSBコントローラ102へ出力される。サーバB200では破棄される。このように、USBコントローラ102がUSBデバイスにデータをライトした場合、データバッファ110、210の内容も更新されるためデータの整合が保たれる。
(他のサーバがUSBバス使用時)
最後に、図4を参照して、USBバスが他のサーバに使用されている場合の動作を説明する。
In the server A100, since the multiplexer 104 faces the USB bus 1, the ACK handshake packet is output to the USB controller 102. In server B200, it is discarded. In this way, when the USB controller 102 writes data to the USB device, the contents of the data buffers 110 and 210 are also updated, so that data consistency is maintained.
(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 server B 200 uses the USB bus 1, the token packet first flows on the USB bus 1, and finally the handshake packet flows on the USB bus 1. The USB bus monitoring unit 112 of the server A 100 instructs the packet output determination unit 108 to suppress the packet output to the USB bus 1 until the handshake packet flows after the token packet flows to the USB bus 1.

パケット出力判断部108は、USBバス監視部112からパケット出力を抑止するよう指示されている間に、USBコントローラ102がパケットを出力しようとした場合(ステップSt21:YES)、出力パケット一時待避FIFO106へのパケット破棄と、ハンドシェーク生成部107へのNACKハンドシェークパケット生成を指示し、マルチプレクサ104をハンドシェーク107側へ切り替え、USBコントローラ102へNACKハンドシェークパケットを出力する(ステップSt22)。   When the USB controller 102 tries to output a packet while the USB bus monitoring unit 112 is instructed to suppress the packet output (step St21: YES), the packet output determination unit 108 proceeds to the output packet temporary save FIFO 106. Is instructed to generate the NACK handshake packet to the handshake generation unit 107, the multiplexer 104 is switched to the handshake 107 side, and the NACK handshake packet is output to the USB controller 102 (step St22).

USBコントローラ102は、NACKハンドシェークパケットを受信したため、リトライ処理を行う。   Since the USB controller 102 has received the NACK handshake packet, the USB controller 102 performs a retry process.

以上説明したように、本実施例では、サーバ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 server A 100 acquires data from the CD-ROM drive 3, the device request issued by the USB controller 102 is input to the input packet analysis units 111 and 211 of the server A 100 and the server B 200, respectively. Is generated, and the write addresses of the data buffers 110 and 210 are generated from the address information in the request. When a response to the device request is returned from the CD-ROM drive 3, the response content from the CD-ROM drive 3 is recorded in the data buffers 110 and 210. When the server B 200 acquires data for the same address, the output packet analysis unit 205 analyzes the device request issued by the USB controller 202, generates the read address of the data buffer 210 from the address information in the request, and stores the data. read out.

このように、本実施例では、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 interface units 301,..., N01 similar to the interface units 101 and 201 as shown in FIG. If the servers C300,..., And the server n00 are connected between the USB controllers 301,..., N01 and the USB bus 1, the USB bus common to the three or more servers 100, 200, 300,. USB devices (CD-ROM drive 3 and FDD drive 4) can be shared via 1. Even in this case, the same effect as described above can be obtained.

また、本実施例では、複数のサーバが共通の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.

本発明の実施例に係るUSBデバイス共有システムの全体構成を示すブロック図である。1 is a block diagram illustrating an overall configuration of a USB device sharing system according to an embodiment of the present invention. 本発明の実施例において、データリード時のパケット出力制御部の処理を示すフローチャートである。In the Example of this invention, it is a flowchart which shows the process of the packet output control part at the time of data read. 本発明の実施例において、データライト時のパケット出力制御部の処理を示すフローチャートである。In the Example of this invention, it is a flowchart which shows the process of the packet output control part at the time of data write. 本発明の実施例において、他のサーバがUSBバスを使用している時のパケット出力制御部の処理を示すフローチャートである。In the Example of this invention, it is a flowchart which shows the process of the packet output control part when another server is using the USB bus. 本発明の実施例を3台以上のサーバに適用した場合のUSBデバイス共有システムの全体構成を示す概略ブロック図である。It is a schematic block diagram which shows the whole structure of a USB device sharing system at the time of applying the Example of this invention to three or more servers.

符号の説明Explanation of symbols

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 USB bus 2 USB HUB
3 CD-ROM drive 4 FDD drive 100, 200 Server A, B
101, 201 Interface unit 102, 202 USB controller 104, 204 Multiplexer 105, 205 Output packet analysis unit 106, 206 Output packet temporary save FIFO
107, 207 Handshake generation unit 108, 208 Packet output determination unit 110, 210 Data buffer 111, 211 Input packet analysis unit 112, 212 USB bus monitoring unit

Claims (5)

複数のサーバを有し、前記複数のサーバが共通の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デバイス共有システム。
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コントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項記載の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コントローラに出力するように前記マルチプレクサに制御指令を与える手段とをさらに有することを特徴とする請求項記載の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項に記載の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項に記載の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 .
JP2006098481A 2006-03-31 2006-03-31 USB device sharing system, server interface device used therefor, and operation method thereof Expired - Fee Related JP5077624B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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