JP2009187368A - Usbポートの共有制御方法 - Google Patents

Usbポートの共有制御方法 Download PDF

Info

Publication number
JP2009187368A
JP2009187368A JP2008027761A JP2008027761A JP2009187368A JP 2009187368 A JP2009187368 A JP 2009187368A JP 2008027761 A JP2008027761 A JP 2008027761A JP 2008027761 A JP2008027761 A JP 2008027761A JP 2009187368 A JP2009187368 A JP 2009187368A
Authority
JP
Japan
Prior art keywords
usb
host controller
physical
virtual
port
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.)
Pending
Application number
JP2008027761A
Other languages
English (en)
Inventor
Hirotsugu Tanaka
洋次 田中
Yukari Hatta
ゆかり 八田
Hideaki Tofuku
秀暁 東福
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.)
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Communication Engineering Ltd
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 Hitachi Ltd, Hitachi Information and Communication Engineering Ltd filed Critical Hitachi Ltd
Priority to JP2008027761A priority Critical patent/JP2009187368A/ja
Priority to US12/359,441 priority patent/US8387043B2/en
Publication of JP2009187368A publication Critical patent/JP2009187368A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

【課題】複数の仮想計算機が、OS上で動作するUSBホストコントローラデバイスドライバから物理USBホストコントローラを介して物理USBポートを共有利用可能にする。
【解決の手段】物理計算機10内に構築される複数の仮想計算機100、200上に仮想USBホストコントローラ102、202を配置し、使用する物理USBポートへのUSBデバイス20の装脱着のエミュレーションと、仮想計算機のUSBポート利用権の割当変更を制御端末からのオペレーションにより排他利用を可能にして、物理USBポート21を仮想計算機間で共有利用する。
【選択図】図1

Description

本発明は、USBポートの共有制御方法に係り、特に、物理計算機に実装され物理USBポートを介してUSBデバイスが接続される物理USBホストコントローラを複数の仮想計算機に共有利用させ、物理USBポートを1つの仮想計算機に占有利用させることを可能にしたUSBポートの共有制御方法に関する。
通常、USBデバイスが物理USBポートに接続された場合、物理USBホストコントローラのレジスタにおけるポートの状態を表示または制御するPORTSCレジスタに接続状態が反映される。そして、計算機上のUSBドライバは、このPORTSCレジスタの内容を見て、物理ポートの制御を開始している。
一方、物理計算機に実装された物理USBホストコントローラを仮想計算機に使用させるためには、仮想計算機におけるUSBホストコントローラの仮想化が必要である。このような仮想計算機におけるUSBホストコントローラの仮想化は、デバイスの仮想化による共有技術により、物理計算機内に複数の仮想計算機を生成する制御を行っているホスト計算機内に構成されるハイパバイザによって、物理USBホストコントローラに対するデバイスエミュレーションを行うことにより実現される。
なお、仮想計算機におけるI/Oデバイスの共有に関する従来技術として、例えば、特許文献1等に記載された技術が知られている。
特開2006−85543公報
しかし、物理USBポートに接続されたUSBデバイスを仮想計算機に使用させるためには、前述のPORTSCレジスタに反映されている接続状態を、仮想計算機上のUSBドライバに見せる制御が必要になり、そのための処理が必要となっていた。
そして、ハードウエアのベンダが提供するハードウエアデバイスを仮想計算機上で安定して動作させるためには、仮想計算機をエミュレーションするハイパバイザ上に、USBホストコントローラの仮想化と物理USBホストコントローラ制御のためのデバイス制御とを実装することになるが、前述の特許文献1に記載された従来技術を用いて、物理USBホストコントローラを仮想化しようとしても、品質と性能とを確保しつつ、ベンダが提供するハードウエアの完全な動作を保障することは、ベンダが提供するハードウェアの詳細な仕様等が公開されていない場合が多く非常に困難である。
本発明の目的は、前述したような点に鑑み、仮想計算機を制御するハイパバイザにおいて、一般に公開されているUSBホストコントローラのハードウエア仕様に準ずる物理デバイスの制御を極力行わないように限定し、仮想計算機上のOS上で動作するUSBホストコントローラデバイスドライバが物理USBホストコントローラを介してUSBポートの利用を占有して行うことができるようにしたUSBポートの共有制御方法を提供することにある。
本発明によれば前記目的は、物理計算機内に構成される複数の仮想計算機に、物理計算機に実装される物理USBホストコントローラを共有利用させるUSBポートの共有制御方法において、前記物理計算機が、複数の仮想計算機を構成するハイパバイザを有し、該ハイパバイザが、前記物理USBホストコントローラを前記複数の仮想計算機上に仮想USBホストコントローラとして論理実装し、前記物理ホストコントローラが制御するUSBポートに対して、1つの仮想計算機に制御権を与えて前記物理USBホストコントローラを介して前記USBポートを排他的に利用させることにより達成される。
本発明によれば、物理USBポートをある1つ仮想計算機が占有利用することができるように利用権限を切り替えているので、仮想計算機上のOS上で動作するUSBホストコントローラデバイスドライバが物理USBホストコントローラを介してUSBポートの利用を占有して行うことができる。
以下、本発明によるUSBポートの共有制御方法の実施形態を図面により詳細に説明する。
図1はUSBポートを切り替えて排他的に1つの仮想計算機にポート利用権限を割り当ててUSBポートを共有している仮想計算機システムの構成を示すブロック図である。
図1に示す物理計算機10には、複数の仮想計算機100、200が動作可能に構築されており、物理USBホストコントローラ300と、その制御ポートとしてのUSBポート21とが設けられている。そして、USBポート21には、I/OデバイスとしてのUSBデバイス20が接続可能とされている。この物理計算機10は、図1には示していないが、CPU、RAM、ROM、HDD等を備えて構成され、HDD内に格納されたプログラムをCPUがRAMを使用して実行することにより、ハイパバイザが構築され、このハイパバイザの制御により複数の仮想計算機が物理計算機10の中に構築される。
仮想計算機100、200は、仮想USBホストコントローラ102、202と、その制御ポートとしての仮想USBポート103、203とを持ち、仮想計算機100、200内では、USBホストコントローラデバイスドライバ104、204を備えるOS101、201が動作する。そして、仮想USBホストコントローラ102、202は、USBホストコントローラデバイスドライバ104、204により制御される。
図1に示す例は、物理USBホストコントローラ300が、仮想USBホストコントローラ102により透過制御され、仮想計算機100におけるOS101のUSBホストコントローラデバイスドライバ104が、USBポート21を占有してUSBデバイス20を制御可能とされている状態を示している。このとき、仮想計算機200のOS201は、仮想USBホストコントローラ202を制御するが、SW400により、物理USBホストコントローラ300にはアクセスすることができないようにされており、このため、USBホストコントローラデバイスドライバ204は、仮想USBポート203の状態もUSBデバイスに未接続の状態のままで変化させることはない。
SW400は、物理計算機10に備えられる物理USBホストコントローラ300とUSBポート21とを複数の仮想計算機の1つに占有させるための切り替え手段であり、物理計算機10に接続されている制御端末30からのシステム管理者による指示により制御されて、物理USBホストコントローラ300に対する透過制御権を、仮想USBホストコントローラ201または202の一方に切り替えて、USBポート21を仮想計算機100または200の一方に使用させることができる。
図2は物理USBホストコントローラを仮想化して仮想計算機に与えるためのハイパバイザの制御機能を説明する図である。
物理USBホストコントローラ300には、USB1.1ホストコントローラやUSB2.0拡張ホストコントローラがあり、これらの機能を実現するために、USB1.1ホストコントローラレジスタ301、USB2.0拡張ホストコントローラレジスタ302が設けられている。なお、図2にはUSB1.1ホストコントローラレジスタ301が複数存在するものとして示されているが、これは、図1に示している物理計算機10に備えられる物理USBホストコントローラ300とUSBポート21との対が複数設けられた場合に、それらを使い分けるためである。また、物理USBホストコントローラ300には、同様な意味で複数のUSB2.0拡張ホストコントローラレジスタ302が設けられてもよい。
そして、すでに説明したように物理計算機10内には、複数の仮想計算機100、200を構築するハイパバイザ500が構成される。ハイパバイザ500は、USBホストコントローラレジスタエミュレータ510と、USBホストコントローラポート状態管理部520とを備えて構成される。ハイパバイザ500のUSBホストコントローラレジスタエミュレータ510は、物理USBホストコントローラ300を仮想化した仮想USBホストコントローラ102、202を仮想計算機100、200に見せるため、物理USBホストコントローラ300が有するレジスタ301、302のレジスタ構造をエミュレートし、また、物理USBホストコントローラ300に対して仮想ホストコントローラ102または202との間でのレジスタアクセスの読み込みと書き込みの要求を透過的に通知して物理USBホストコントローラ300を制御する。
前述したUSBホストコントローラレジスタエミュレータ510によるレジスタ構造のエミュレートにより、仮想計算機100、200から見える仮想USBホストコントローラ102、202内には、仮想USB1.1ホストコントローラレジスタ1021、2021、仮想USB2.0拡張ホストコントローラレジスタ1022、2022が備えられるようになる。
USBホストコントローラポート状態管理部520は、物理USBホストコントローラ300のUSBポート21の管理、すなわち、仮想計算機に対してUSBポート21を使用させる物理制御権の制御を行う。これにより、USBポート21の利用についての排他制御をハイパバイザ500で行うことが可能となる。
図3は物理USBポートを1つの仮想計算機に物理USBホストコントローラを介して排他的に使用させる場合の物理USBホストコントローラレジスタの物理レジスタとハイパバイザの持つレジスタとの関係を示す図であり、この図を参照して、仮想計算機に対する物理USBポートを制御する利用権限があるとき及び利用不可をレジスタエミュレーションにより実現する仕組みについて説明する。
図3において、物理USBレジスタ600は、図2に示す物理USBホストコントローラ300内のUSB1.1ホストコントローラレジスタ301、または、USB2.0拡張ホストコントローラレジスタ302に相当するレジスタであり、PCI仕様及びUSBホストコントローラの公開仕様を元に定義されるUSBレジスタである。そして、この物理USBレジスタ600は、Read属性レジスタ601とRead/Write属性レジスタ602とそのポート状態を表示または制御するPORTSCレジスタ603とにより構成される。
ハイパバイザ500は、前述の物理USBレジスタ600を構成する各レジスタの投影であるレジスタ611〜613及びレジスタ621〜623を、それぞれ仮想計算機100、200にUSBレジスタ611−1、612−1、613−1、及び、USBレジスタ621−1、622−1、623−1として見せている。図3に示す例では、ハイパバイザ500が、PORTSCレジスタ613を有効とするエミュレーション640、650を行い、物理USBポートの利用権限を仮想USBレジスタ610に与えている。
なお、図3には、ハイパバイザ500内に仮想USBレジスタ610、仮想USBダミーレジスタ620が備えられているように示しているが、前述したように、ハイパバイザ500は、物理USBレジスタ600を仮想計算機に見せているだけであるので、実体としての仮想USBレジスタ610、仮想USBダミーレジスタ620は有していない。
仮想計算機100は、PORTSCレジスタ613を見ることにより、物理USBポートを自計算機が占有して使用可能であることを知ることができる。そして、USBデバイス20がUSBポート21に装着されると、物理USBホストコントローラ300は、自コントローラ300に備えられている図示しない割込み発生部から割込み命令を発して、ハイパバイザ500にUSBデバイスの装着を検知させる。前述の割込み命令は、ハイパバイザ500の割込みコントローラ700を介して、物理USBポートを占有して使用可能となっている仮想計算機である仮想計算機100の割込みコントローラ710−1に転送される。仮想計算機は、これにより、USBデバイス20がUSBポート21に装着され、USBデバイス20へのアクセスが可能になったことを知り、物理USBレジスタ600に対してRead/Write要求を行って、USBポートを制御し該USBポートに装着されるUSBデバイス20を占有して使用を開始することができる。そして、仮想計算機100は、USBデバイス20とのデータの送受信を、図3には示していないハイパバイザを介して設定されるデータ転送用の信号線を介して実行する。
一方、仮想計算機200には、ハイパバイザ500の仮想USBダミーレジスタ620が割り当てられており、ハイパバイザ500は、PORTSCレジスタ623を無効とするエミュレーション651を行って、割り込みコントローラ720−1からの報告を受けないようにしているため、このダミーレジスタは、仮想計算機200からの要求あるいは報告について、物理レジスタ600に影響を与えることはない。
図4は物理ポートの利用権限を仮想計算機に割当てるためのUSB開始オペレーションと、仮想計算機から利用権限を取り外すためのUSB停止オペレーションとにおけるハイパバイザでの処理動作を説明するフローチャートであり、次に、これについて説明する。
(1)いま、仮想計算機Aは、物理レジスタ透過アクセス状態A1にあり物理USBポートを利用可能な状態にあり、仮想計算機Bは、仮想USBダミーレジスタ割当B1の状態にあり、USBポートの排他利用が不可能な状態にあるものとする。
(2)前述の状態で、制御端末30を介して管理者等から仮想計算機AへのUSB停止オペレーション指示O1がハイパバイザHに要求されると、ハイパバイザHは、仮想USB停止エミュレーションA2を行うため、物理USBレジスタの物理PORTSCレジスタを検査し、USBポートが利用中の場合、USBポートの利用を一時的に中止させるために、物理PORTSCレジスタにSuspend設定と解除とを行い、物理USBレジスタのPORTSCレジスタにUSBデバイスの停止書込み、仮想計算機100とUSBデバイス20との間で行われているデータの送受信であるUSBホストコントローラ通信を停止する処理(処理P1)を行って物理USBへのアクセスを停止する。
(3)その後、ハイパバイザHは、USBポートをDisableして、仮想USBレジスタ停止エミュレーション(処理P2)を実施する。次に、ハイパバイザHは、仮想USBダミーレジスタのPORTSCレジスタに物理停止状態を反映して仮想計算機に割り当てる処理(処理P3)を行うことにより、仮想計算機AのUSBドライバ制御からのUSBポートを利用停止にする。この状態で、仮想計算機Aと仮想計算機Bとは、仮想USBダミーレジスタが割当てられた状態になりUSBポートの利用はどちらの仮想計算機からも不可能となる。
(4)次に、制御端末30を介して管理者等から仮想計算機BへのUSB開始オペレーション指示O2がハイパバイザHに要求されると、ハイパバイザHは、そのオペレーションにより、一旦物理USBレジスタのPORTSCレジスタに物理I/O接続状態を確認して物理USBレジスタの初期化の処理(処理P4)を行った後、仮想USB開始エミュレーションB2を実施するために、仮想計算機Bに対する仮想USBレジスタに物理USBレジスタを投影する処理(処理P5)を行う。
(5)さらに、ハイパバイザHは、物理USBポートにUSBデバイスが接続されていた場合、仮想USBレジスタのポート接続エミュレーションの処理(処理P6)を実施し、ポートに接続された状態に合わせて、物理USBレジスタを仮想計算機Bに割り当てる処理(処理P7)を行い、物理レジスタ透過アクセスB3を開始し、仮想計算機Bに対してUSBポートの利用を開始させる。
前述した本発明の実施形態によれば、ハイパバイザが物理USBレジスタを透過アクセス利用権のある1つの仮想計算機に対して割り当てを行うよう排他制御を行うことができるので、1つの仮想計算機がUSBポートを占有して利用することが可能となる。
また、本発明の実施形態によれば、物理ホストコントローラからは複数の仮想計算機のそれぞれに仮想USBホストコントローラが実装されているように見え、物理USBポートは、ある1つの仮想計算機で利用権限を切り替えて利用することが可能になり、仮想計算機のOSは、USBホストコントローラの再認識を必要とせず、USBポートを占有的に使用することができるため、ハイパバイザによるI/O駆動制御に関わるエミュレーション処理を省き、それらによるオーバヘッドを削減することができる。
また、本発明の実施形態によれば、USBポートへのUSBデバイスの装脱着の物理ホストコントローラへの偽装書換えと仮想USBホストコントローラのエミュレーションを実装する開発を、全ホストコントローラ仕様をエミュレーションすることなく行うことができるので、開発に関わる工数、費用、時間を低減することができ、コストダウンを図ることができる。
前述した本発明の実施形態におけるハイパバイザでの処理は、プログラムにより構成し、物理計算機が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
前述で説明した本発明の実施形態は、サーバシステムにおける仮想計算機上でのUSBの利用形態を考慮した場合、一般的には、OSのインストールやドライバのインストールまたはユーザデータの入出力のための用途として使用されるケースを想定するが、常にUSBポートにUSBデバイスを装着して運用する必要性がない場合、USBデバイスを一時的な外部媒体として扱うことが想定されるため、管理者からのオペレーションによるUSBポートの利用を切り替えることによりUSBデバイスを利用することは有効的な利用方法である。
また、前述した本発明の実施形態は、物理計算機に接続されるUSBデバイスの仮想計算機間での利用変更の際に、OSの再起動またはUSBホストコントローラの再検索を必要としないためデバイスドライバを安定して利用することができる。
USBポートを切り替えて排他的に1つの仮想計算機にポート利用権限を割り当ててUSBポートを共有している仮想計算機システムの構成を示すブロック図である。 物理USBホストコントローラを仮想化して仮想計算機に与えるためのハイパバイザの制御機能を説明する図である。 物理USBポートを1つの仮想計算機に物理USBホストコントローラを介して排他的に使用させる場合の物理USBホストコントローラレジスタの物理レジスタとハイパバイザの持つレジスタとの関係を示す図である。 物理ポートの利用権限を仮想計算機に割当てるためのUSB開始オペレーションと、仮想計算機から利用権限を取り外すためのUSB停止オペレーションとにおけるハイパバイザでの処理動作を説明するフローチャートである。
符号の説明
10 物理計算機
20 USBデバイス
21 USBポート
30 制御端末
100、200 仮想計算機
101、201 OS
102、202 仮想USBホストコントローラ
1021、2021 仮想USB1.1ホストコントローラレジスタ
1022、2022 仮想USB2.0拡張ホストコントローラレジスタ
103、203 仮想USBポート
104、204 USBホストコントローラデバイスドライバ
300 物理ホストコントローラ
301 USB1.1ホストコントローラレジスタ
302 USB2.0拡張ホストコントローラレジスタ
500 ハイパバイザ
510 USBホストコントローラレジスタエミュレータ
520 USBホストコントローラポート状態管理部
600 物理USBレジスタ
601、611、611−1、621、621−1 Readレジスタ
602、612、612−1、622、622−1 Read/Writeレジスタ
603、613、613−1、623、623−1 PORTSCレジスタ
610、620 仮想USBレジスタ
700、710−1、720−1 割込みコントローラ

Claims (6)

  1. 物理計算機内に構成される複数の仮想計算機に、物理計算機に実装される物理USBホストコントローラを共有利用させるUSBポートの共有制御方法において、
    前記物理計算機は、複数の仮想計算機を構成するハイパバイザを有し、該ハイパバイザは、前記物理USBホストコントローラを前記複数の仮想計算機上に仮想USBホストコントローラとして論理実装し、前記物理ホストコントローラが制御するUSBポートに対して、1つの仮想計算機に制御権を与えて前記物理USBホストコントローラを介して前記USBポートを排他的に利用させることを特徴とするUSBポートの共有制御方法。
  2. 前記ハイパバイザは、USBホストコントローラポート管理手段を備え、前記複数の仮想計算機に仮想USBホストコントローラとして割り当てる際、USBポートを利用可能に割り当てる仮想計算機と利用不可とする仮想計算機との利用状態を管理することを特徴とする請求項1記載のUSBポートの共有制御方法。
  3. 前記ハイパバイザは、仮想計算機の仮想USBホストコントローラがUSBポートを利用を可能にするために、前記物理USBホストコントローラのポート状態を仮想ホストコントローラに対して、前記USBデバイスの装着時にポート接続エミュレーションを行って前記仮想計算機上のOSに対して前記USBポートへのUSBデバイスの装着を認識させ、前記物理USBホストコントローラに接続されている前記USBデバイスが前記USBポートから引き抜かれたとき、ポート切断エミュレーションを行って、その仮想計算上のOSに物理USBポート接続状態の解除を認識させることを特徴とする請求項1記載のUSBポートの共有制御方法。
  4. 前記USBポートを利用可能に割り当てられた仮想計算機は、前記物理ポートの割り当て解除前まで、当該仮想計算機上のOSが前記USBポート装着された前記USBデバイスを占有して、直接I/O駆動を行うことが可能であることを特徴とする請求項2記載のUSBポートの共有制御方法。
  5. 前記ハイパバイザは、USBポートへのUSBデバイスの抜き差しを検知し、仮想ホストコントローラを制御することにより、前記USBデバイスの装着、接続解除を前記仮想計算機に認識させることを特徴とする請求項3記載のUSBポートの共有制御方法。
  6. 前記ハイパバイザは、仮想USBホストコントローラの制御範囲のUSBポートに対する前記USBデバイスの装脱着を擬似すると共にその状態管理を行うことにより、前記仮想計算機のOSに対して、物理USBホストコントローラが存在しているように見せることを特徴とする請求項3記載のUSBポートの共有制御方法。
JP2008027761A 2008-02-07 2008-02-07 Usbポートの共有制御方法 Pending JP2009187368A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008027761A JP2009187368A (ja) 2008-02-07 2008-02-07 Usbポートの共有制御方法
US12/359,441 US8387043B2 (en) 2008-02-07 2009-01-26 USB port shared control method in a plurality of virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008027761A JP2009187368A (ja) 2008-02-07 2008-02-07 Usbポートの共有制御方法

Publications (1)

Publication Number Publication Date
JP2009187368A true JP2009187368A (ja) 2009-08-20

Family

ID=40939996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008027761A Pending JP2009187368A (ja) 2008-02-07 2008-02-07 Usbポートの共有制御方法

Country Status (2)

Country Link
US (1) US8387043B2 (ja)
JP (1) JP2009187368A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146044A (ja) * 2010-01-12 2011-07-28 Internatl Business Mach Corp <Ibm> ホストusbアダプタを仮想化するための方法、装置、およびコンピュータ・プログラム(ホストusbアダプタの仮想化)
JP2011232949A (ja) * 2010-04-27 2011-11-17 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2011232948A (ja) * 2010-04-27 2011-11-17 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2017535894A (ja) * 2014-10-05 2017-11-30 アマゾン テクノロジーズ インコーポレイテッド エミュレートされたエンドポイントコンフィグレーション

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010097933A1 (ja) * 2009-02-27 2010-09-02 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8387045B2 (en) * 2009-03-12 2013-02-26 International Business Machines Corporation Cloning image creation using virtual machine environment
US8665886B2 (en) * 2009-03-26 2014-03-04 Brocade Communications Systems, Inc. Redundant host connection in a routed network
US20110153901A1 (en) * 2009-06-26 2011-06-23 International Business Machines Corporation Virtual usb key for blade server
US8573493B2 (en) * 2009-06-30 2013-11-05 Avocent Corporation Method and system for smart card virtualization
CN101630191B (zh) * 2009-08-26 2011-08-24 中兴通讯股份有限公司 一种实现通用串行总线调制解调器设备节电的装置及方法
US8693485B2 (en) * 2009-10-14 2014-04-08 Dell Products, Lp Virtualization aware network switch
US8369335B2 (en) 2010-03-24 2013-02-05 Brocade Communications Systems, Inc. Method and system for extending routing domain to non-routing end stations
US8738952B1 (en) * 2010-03-29 2014-05-27 Amazon Technologies, Inc. Device controller low power mode
US9001824B2 (en) 2010-05-18 2015-04-07 Brocade Communication Systems, Inc. Fabric formation for virtual cluster switching
US9231890B2 (en) 2010-06-08 2016-01-05 Brocade Communications Systems, Inc. Traffic management for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9461840B2 (en) * 2010-06-02 2016-10-04 Brocade Communications Systems, Inc. Port profile management for virtual cluster switching
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US8634308B2 (en) 2010-06-02 2014-01-21 Brocade Communications Systems, Inc. Path detection in trill networks
US8885488B2 (en) 2010-06-02 2014-11-11 Brocade Communication Systems, Inc. Reachability detection in trill networks
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US8446914B2 (en) 2010-06-08 2013-05-21 Brocade Communications Systems, Inc. Method and system for link aggregation across multiple switches
US9246703B2 (en) 2010-06-08 2016-01-26 Brocade Communications Systems, Inc. Remote port mirroring
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9116821B2 (en) * 2011-03-23 2015-08-25 Avocent Corporation Method and system for USB device virtualization
US9244699B2 (en) * 2011-03-23 2016-01-26 Avocent Corporation Method and system for audio device virtualization
US9270572B2 (en) 2011-05-02 2016-02-23 Brocade Communications Systems Inc. Layer-3 support in TRILL networks
US8948056B2 (en) 2011-06-28 2015-02-03 Brocade Communication Systems, Inc. Spanning-tree based loop detection for an ethernet fabric switch
US8879549B2 (en) 2011-06-28 2014-11-04 Brocade Communications Systems, Inc. Clearing forwarding entries dynamically and ensuring consistency of tables across ethernet fabric switch
US9401861B2 (en) 2011-06-28 2016-07-26 Brocade Communications Systems, Inc. Scalable MAC address distribution in an Ethernet fabric switch
US9407533B2 (en) 2011-06-28 2016-08-02 Brocade Communications Systems, Inc. Multicast in a trill network
US9007958B2 (en) 2011-06-29 2015-04-14 Brocade Communication Systems, Inc. External loop detection for an ethernet fabric switch
US8885641B2 (en) 2011-06-30 2014-11-11 Brocade Communication Systems, Inc. Efficient trill forwarding
TWI437493B (zh) * 2011-07-25 2014-05-11 Quanta Comp Inc 電腦系統及其作業系統載入方法
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9081703B2 (en) * 2011-09-15 2015-07-14 Nokia Technologies Oy Method and apparatuses for facilitating sharing device connections between a host and client based on the power mode of the host
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US9053246B2 (en) * 2011-11-17 2015-06-09 Mcci Corporation USB class protocol modules
US8995272B2 (en) 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
US9374301B2 (en) 2012-05-18 2016-06-21 Brocade Communications Systems, Inc. Network feedback in software-defined networks
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
WO2013177289A1 (en) 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Layer-3 overlay gateways
US9602430B2 (en) 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9350680B2 (en) 2013-01-11 2016-05-24 Brocade Communications Systems, Inc. Protection switching over a virtual link aggregation
US9565113B2 (en) 2013-01-15 2017-02-07 Brocade Communications Systems, Inc. Adaptive link aggregation and virtual link aggregation
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9141416B2 (en) 2013-03-15 2015-09-22 Centurylink Intellectual Property Llc Virtualization congestion control framework for modifying execution of applications on virtual machine based on mass congestion indicator in host computing system
US9401818B2 (en) 2013-03-15 2016-07-26 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
US9565028B2 (en) 2013-06-10 2017-02-07 Brocade Communications Systems, Inc. Ingress switch multicast distribution in a fabric switch
US9699001B2 (en) 2013-06-10 2017-07-04 Brocade Communications Systems, Inc. Scalable and segregated network virtualization
CN104252375B (zh) 2013-06-25 2017-07-28 国际商业机器公司 用于位于不同主机的多个虚拟机共享USB Key的方法和系统
US10389577B2 (en) 2013-08-14 2019-08-20 Centurylink Intellectual Property Llc Ethernet carrier group alarm (CGA)
US9806949B2 (en) 2013-09-06 2017-10-31 Brocade Communications Systems, Inc. Transparent interconnection of Ethernet fabric switches
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9864623B2 (en) 2013-11-21 2018-01-09 Centurylink Intellectual Property Llc Physical to virtual network transport function abstraction
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US9998320B2 (en) 2014-04-03 2018-06-12 Centurylink Intellectual Property Llc Customer environment network functions virtualization (NFV)
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
CN104092747B (zh) * 2014-06-30 2017-08-08 新华三技术有限公司 虚拟化环境下usb动态连接方法及装置
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9544219B2 (en) 2014-07-31 2017-01-10 Brocade Communications Systems, Inc. Global VLAN services
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US10225327B2 (en) 2014-08-13 2019-03-05 Centurylink Intellectual Property Llc Remoting application servers
US9898318B2 (en) 2014-08-15 2018-02-20 Centurylink Intellectual Property Llc Multi-line/multi-state virtualized OAM transponder
US9524173B2 (en) 2014-10-09 2016-12-20 Brocade Communications Systems, Inc. Fast reboot for a switch
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10601641B2 (en) 2015-01-30 2020-03-24 Centurylink Intellectual Property Llc Access constructs for cloud orchestration
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
US9760730B2 (en) 2015-08-28 2017-09-12 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US9882833B2 (en) 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
US10078528B2 (en) 2015-10-06 2018-09-18 Centurylink Intellectual Property Llc Virtual machine-to-port peripheral device driver for implementing communications between virtual machines and client devices
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US10289583B2 (en) * 2016-09-02 2019-05-14 American Megatrends, Inc. Techniques of emulation of serial port over USB at embedded-system device
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10083146B2 (en) * 2016-11-22 2018-09-25 Hewlett Packard Enterprise Development Lp Shared USB ports
US10540736B2 (en) * 2017-08-03 2020-01-21 Texas Instruments Incorporated Display sub-system sharing for heterogeneous systems
CN110073336A (zh) * 2017-10-13 2019-07-30 华为技术有限公司 应用管理方法及终端
CN107943560A (zh) * 2017-11-27 2018-04-20 郑州云海信息技术有限公司 一种通用串行总线设备的挂载方法及挂载装置
CN110413376A (zh) * 2019-07-12 2019-11-05 苏州浪潮智能科技有限公司 一种虚拟机管理usb设备的方法、设备以及存储介质
US11762796B2 (en) 2019-07-25 2023-09-19 Hewlett-Packard Development Company, L.P. Binding downstream USB ports to upstream USB ports
WO2021066799A1 (en) * 2019-09-30 2021-04-08 Hewlett-Packard Development Company, L.P. Usb port capability assignment
CN113282527A (zh) * 2021-05-08 2021-08-20 珠海金智维信息科技有限公司 一种实现usb设备切换管理的方法、装置和主机
US11915015B2 (en) * 2021-08-27 2024-02-27 Dell Products, L.P. Systems and methods for use of pre-boot resources by modern workspaces

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
JP2003202999A (ja) * 2002-01-08 2003-07-18 Hitachi Ltd 仮想計算機システム
JP3100747U (ja) * 2002-10-25 2004-05-27 茂傑國際有限公司 Usb対vgaインタフェース変換装置
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664554B2 (ja) 1989-09-14 1994-08-22 株式会社日立製作所 多重仮想アドレス空間アクセス装置
JP3100747B2 (ja) 1992-03-05 2000-10-23 新日本製鐵株式会社 圧延機の駆動力伝達装置
TW518502B (en) * 2001-07-13 2003-01-21 Prolific Technology Inc USB compound device and the realization method thereof
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US7971203B2 (en) * 2004-03-05 2011-06-28 Intel Corporation Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US7458075B2 (en) * 2004-03-31 2008-11-25 Intel Corporation Virtual USB port system and method
JP4295184B2 (ja) 2004-09-17 2009-07-15 株式会社日立製作所 仮想計算機システム
US8347063B2 (en) * 2005-08-19 2013-01-01 Intel Corporation Method and system for device address translation for virtualization
US7774794B2 (en) * 2005-08-19 2010-08-10 Intel Corporation Method and system for managing bandwidth in a virtualized system
CN100472452C (zh) * 2006-06-23 2009-03-25 联想(北京)有限公司 一种虚拟机系统及其硬件设备的切换方法
WO2008017001A2 (en) * 2006-08-02 2008-02-07 Moka5, Inc. Sharing live appliances
US8266395B2 (en) * 2007-03-23 2012-09-11 Vmware, Inc. Detecting attempts to change memory
US20090006702A1 (en) * 2007-06-26 2009-01-01 Nitin Sarangdhar Sharing universal serial bus isochronous bandwidth between multiple virtual machines
US20090006690A1 (en) * 2007-06-27 2009-01-01 Balaji Vembu Providing universal serial bus device virtualization with a schedule merge from multiple virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
JP2003202999A (ja) * 2002-01-08 2003-07-18 Hitachi Ltd 仮想計算機システム
JP3100747U (ja) * 2002-10-25 2004-05-27 茂傑國際有限公司 Usb対vgaインタフェース変換装置
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146044A (ja) * 2010-01-12 2011-07-28 Internatl Business Mach Corp <Ibm> ホストusbアダプタを仮想化するための方法、装置、およびコンピュータ・プログラム(ホストusbアダプタの仮想化)
US9507619B2 (en) 2010-01-12 2016-11-29 International Business Machines Corporation Virtualizing a host USB adapter
JP2011232949A (ja) * 2010-04-27 2011-11-17 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2011232948A (ja) * 2010-04-27 2011-11-17 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2017535894A (ja) * 2014-10-05 2017-11-30 アマゾン テクノロジーズ インコーポレイテッド エミュレートされたエンドポイントコンフィグレーション
US10521365B2 (en) 2014-10-05 2019-12-31 Amazon Technologies, Inc. Emulated endpoint configuration
US11321247B2 (en) 2014-10-05 2022-05-03 Amazon Technologies, Inc. Emulated endpoint configuration
US11886355B2 (en) 2014-10-05 2024-01-30 Amazon Technologies, Inc. Emulated endpoint configuration

Also Published As

Publication number Publication date
US20090204965A1 (en) 2009-08-13
US8387043B2 (en) 2013-02-26

Similar Documents

Publication Publication Date Title
JP2009187368A (ja) Usbポートの共有制御方法
KR101602519B1 (ko) 가상화된 저장소 할당 방법
KR101495862B1 (ko) 제로 클라이언트를 지원하는 가상화 서버 및 가상 머신 관리 방법
JP5005111B2 (ja) 複数の論理パーティションと自己仮想化入出力デバイスとのインターフェース接続
WO2021000689A1 (zh) 虚拟机迁移的方法以及装置
US8151265B2 (en) Apparatus for and method for real-time optimization of virtual machine input/output performance
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
CN106796529B (zh) 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
US20110246171A1 (en) Virtual Machine Fast Emulation Assist
JP5742387B2 (ja) 情報処理システム、及びi/oスイッチ装置
US20210224210A1 (en) Information processing method, physical machine, and pcie device
US20140173072A1 (en) Live migration of virtual machines using virtual bridges in a multi-root input-output virtualization blade chassis
US11113046B1 (en) Integration and remote control of a pre-assembled computer system into a server for a virtualization service
US9495172B2 (en) Method of controlling computer system and computer system
US10642539B2 (en) Read/write path determining method and apparatus
JP2013242797A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN109656675B (zh) 总线设备、计算机设备及实现物理主机云存储的方法
US11243589B1 (en) Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service
CN111651269A (zh) 实现设备虚拟化的方法、装置及计算机可读存储介质
EP2370897A2 (en) Composite device emulation
CN113312155B (zh) 虚拟机创建方法、装置、设备、系统及计算机程序产品
KR101498965B1 (ko) 가상화 기술을 이용한 내외부망 격리 시스템 및 방법
US11392512B2 (en) USB method and apparatus in a virtualization environment with multi-VM
CN111399771A (zh) 一种mcs存储系统的协议配置方法、装置及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130226