`Designations for the
`Claims and
`Limitations
`
`(e.g., number “1a”
`and shorthand label
`“a device”)
`1a
`a device
`1b
`ports
`1c
`a function
`1d
`a controller
`1e
`concurrence
`
`1f
`simultaneous
`enumeration
`1g
`simultaneous access
`1h
`alternating access
`
`2
`buffering
`
`3a
`a device
`3b
`a function
`
`
`
`CLAIM LISTING FOR BOHM ‘708
`
`Claims and Limitations
`
`1. A USB multi-host device comprising:
`
`first and second upstream ports configured to couple to
`corresponding first and second hosts;
`a USB function block; and
`
`a multi-host device controller coupling the USB function
`block to the first and second upstream ports,
`wherein the multi-host device controller is configured to
`establish concurrent respective USB connections between
`the USB function block and the first and second upstream
`ports, to allow the corresponding first and second hosts to:
`simultaneously enumerate and configure the USB multi-
`host device;
`
`simultaneously access the USB multi-host device; and
`
`alternately access the USB function block without
`reconfiguring and/or re-enumerating the USB multi-host
`device before each access.
`2. The USB multi-host device of claim 1, further
`comprising a first endpoint buffer coupled between the first
`upstream port and the multi-host device controller, and a
`second endpoint buffer coupled between the second
`upstream port and the multi-host device controller.
`3. A USB multi-host device comprising:
`
`a USB function block; and
`
`
`1
`
`DELPHI Exhibit 1009
`
`
`
`3c
`a controller
`
`3d
`concurrence
`
`3e
`simultaneous access
`3f
`alternating access
`
`4
`keeping enumeration
`
`5
`ports
`
`6
`buffering
`
`7a
`a device
`7b
`a function
`7c
`a controller
`
`a multi-host device controller coupling the USB function
`block to a first host and a second host, wherein the multi-
`host device controller is configured to establish a first USB
`connection between the first host and the USB function
`block and a second USB connection between the second
`host and the USB function block,
`wherein the first USB connection and the second USB
`connection are concurrent, to allow the first host and the
`second host to:
`simultaneously access the USB multi-host device; and
`
`alternately access the USB function block, without either
`one of the first and second hosts reconfiguring the USB
`multi-host device each time a different one of the first host
`and the second host is given access to the USB function
`block.
`4. The USB multi-host device of claim 3, wherein the
`multi-host USB device is not re-enumerated by either the
`first host or the second host each time the first host and the
`second host alternate accessing the USB function block.
`5. The USB multi-host device of claim 3, further
`comprising a first upstream port coupled between the first
`host and the multi-host device controller, and a second
`upstream port coupled between the second host and the
`multi-host device controller.
`6. The USB multi-host device of claim 5, further
`comprising a first endpoint buffer coupled between first
`upstream port and the multi-host device controller, and a
`second endpoint buffer coupled between the second
`upstream port and the multi-host device controller.
`7. A USB device comprising:
`
`a USB function block; and
`
`a multi-host device controller configured to couple the USB
`function block to a plurality of hosts, wherein the multi-
`host device controller is operable to establish concurrent
`respective USB connections between the USB function
`block and the plurality of hosts,
`
`
`
`
`2
`
`DELPHI Exhibit 1009
`
`
`
`7d
`simultaneous
`enumeration
`7e
`simultaneous access
`7e
`alternating access
`
`8a
`simultaneous receipt
`
`8b
`request ordering
`
`9
`Interleaving
`
`10
`not-ready packets
`
`11a
`simultaneous access
`
`11b
`interleaving
`11c
`request ordering
`
`12
`configuration by
`device type
`13
`
`
`
`to allow the plurality of hosts to: simultaneously enumerate
`and configure the USB device;
`
`simultaneously access the USB device; and
`
`alternately access the USB function block, without any of
`the plurality of hosts reconfiguring the USB device each
`time a different one of the plurality of hosts is given access
`to the USB function block.
`8. The USB device of claim 7, wherein the multi-host
`device controller is operable to simultaneously receive
`respective host requests from the plurality of hosts,
`wherein the multi-host device controller is operable to
`internally determine which of the respective host requests
`to service immediately.
`9. The USB device of claim 8, wherein the multi-host
`device controller is operable to interleave the respective
`host requests.
`10. The USB device of claim 8, wherein the multi-host
`device controller is operable to send not-ready packets in a
`USB specific manner to hosts whose request was not
`immediately serviced.
`11. The USB device of claim 7, wherein the multi-host
`device controller comprises an internal arbitration
`mechanism configured to permit the plurality of hosts to
`simultaneously request access to the USB function block
`by interleaving host access requests and/or
`
`by using a common request/grant structure; wherein the
`common request/grant structure comprises one of the
`plurality of hosts being granted access to the USB function
`block while remaining ones of the plurality of hosts are not
`considered for access to the USB function block until the
`one of the plurality of hosts has completed accessing the
`USB function block.
`12. The USB device of claim 11, wherein the arbitration
`mechanism is configured according to a specific USB
`device type comprised in the USB function block.
`13. The USB device of claim 7, wherein a bandwidth from
`
`
`3
`
`DELPHI Exhibit 1009
`
`
`
`reducing
`bandwidth
`
`14
`keeping
`bandwidth
`15
`ports
`
`16
`buffering
`
`17a
`keeping
`enumeration
`
`18a
`a method
`18b
`concurrence
`
`18c
`simultaneous
`enumeration
`18d
`receiving
`requests
`18e
`request processing
`18f
`alternating access
`
`19
`request ordering
`
`the USB function block to each respective one of the
`plurality of hosts is reduced to allow each respective one of
`the plurality of hosts equal access to the USB function
`block.
`14. The USB device of claim 13, wherein the bandwidth is
`not reduced if it exceeds a bandwidth of the respective one
`of the plurality of hosts.
`15. The USB device of claim 7, further comprising a
`respective upstream port coupled between the multi-host
`device controller and each of the plurality of hosts.
`16. The USB device of claim 15, further comprising a
`respective buffer coupled between each respective
`upstream port and the multi-host device controller.
`17. The USB device of claim 7, wherein the multi-host
`device controller is configured to maintain respective
`dedicated address, configuration, and response information
`for each of the plurality of hosts.
`18. A method for sharing a USB device between multiple
`hosts, the method comprising:.
`establishing concurrent respective USB connections
`between a plurality of hosts and a shared USB function
`comprised in the USB device;
`two or more of the multiple hosts simultaneously
`enumerating and configuring the USB device;
`
`receiving respective access requests to the shared USB
`function from the two or more of the plurality of hosts; and
`
`processing the respective access requests,
`
`to allow the two or more of the plurality of hosts to
`alternately access the shared USB function without any of
`the two or more of the plurality of hosts reconfiguring the
`USB device each time the USB function is accessed in
`response to a respective access request from a different one
`of the two or more of the plurality of hosts.
`19. The method of claim 18, wherein said processing
`comprises determining which of the respective access
`requests to service immediately, and servicing that
`
`
`
`
`4
`
`DELPHI Exhibit 1009
`
`
`
`20
`request ordering
`
`21
`Interleaving
`
`22
`keeping enumeration
`
`23a
`a device
`23b
`a function
`23c
`a controller
`
`23d
`simultaneous access
`
`24
`keeping enumeration
`
`25a
`interface circuits
`
`25b
`
`
`
`respective access request.
`20. The method of claim 19, wherein said processing
`comprises holding off access to the shared USB function by
`those respective access requests that are not immediately
`serviced, until the shared USB function is no longer
`accessed by a given one of the two or more of the plurality
`of hosts from which the serviced respective access request
`was received.
`21. The method of claim 18, wherein said processing
`comprises interleaving accesses requested by the respective
`access requests to the shared USB function.
`22. The method of claim 18, further comprising
`maintaining respective dedicated address, configuration,
`and response information for each of the plurality of hosts.
`23. A USB device comprising:
`
`a shared USB function block; and
`
`a controller configured to establish concurrent respective
`USB connections between the shared USB function block
`and two or more USB hosts, to allow the two or more USB
`hosts to simultaneously configure the USB device for the
`shared USB function;
`wherein the controller is configured to receive and respond
`to simultaneous respective USB access requests sent by the
`two or more USB hosts for accessing the shared USB
`function.
`24. The USB device of claim 23, wherein in establishing
`the concurrent respective USB connections between the
`shared USB function block and the two or more USB hosts,
`the controller is operable to maintain respective dedicated
`address, configuration and response information for each of
`the two or more USB hosts.
`25. The USB device of claim 23, wherein the controller
`comprises: a respective USB interface circuit for each of
`the two or more USB hosts, wherein each respective USB
`interface circuit enables the USB device to transmit and/or
`receive data over a USB bus; and
`a respective endpoint buffer for each of the two or more
`
`
`5
`
`DELPHI Exhibit 1009
`
`
`
`buffering
`
`
`
`
`
`USB hosts for storing respective dedicated address,
`configuration and response information for each of the two
`or more USB hosts.
`
`
`6
`
`DELPHI Exhibit 1009
`
`