US20090100209A1 - Universal serial bus hub with shared high speed handler - Google Patents
Universal serial bus hub with shared high speed handler Download PDFInfo
- Publication number
- US20090100209A1 US20090100209A1 US12/340,916 US34091608A US2009100209A1 US 20090100209 A1 US20090100209 A1 US 20090100209A1 US 34091608 A US34091608 A US 34091608A US 2009100209 A1 US2009100209 A1 US 2009100209A1
- Authority
- US
- United States
- Prior art keywords
- data
- handler
- downstream
- handlers
- 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.)
- Abandoned
Links
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 81
- 239000000872 buffer Substances 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Definitions
- This invention relates to computer systems, and more particularly, to universal serial bus hubs used in computer systems.
- USB Universal Serial Bus
- the USB is a cable bus that allows a host computer to exchange data with a range of peripheral devices.
- USB peripherals share USB bandwidth through a host-scheduled, token-based protocol.
- a USB allows peripherals to be attached, configured, used, and detached while the host and other peripherals are in operation.
- USB hubs allow multiple peripherals to be attached at a single host attachment point.
- a hub converts a single host attachment point into multiple peripheral attachment points.
- Each attachment point is referred to as a port.
- a hub typically includes an upstream port, which couples the hub to the host, and several downstream ports, which each couple the hub to another hub or peripheral.
- Each downstream port may be individually enabled and attached to a high-, full-, or low-speed device.
- a USB hub typically includes a hub controller, a hub repeater, and a transaction translator.
- the hub repeater provides a USB protocol-controlled switch between the upstream port and downstream ports as well as support for reset and suspend/resume signaling.
- the host controller facilitates communication to and from the host.
- the transaction translator allows full- and/or low-speed downstream devices to communicate with a high-speed host.
- the number of transaction translators included in a USB hub limits the number of simultaneous transfers that can take place to full- and/or low-speed downstream devices used in a system with a high-speed host.
- a device may include an upstream port and several downstream ports configured to transfer data at a different data transfer rate than the upstream port.
- the device may also include several downstream data handlers, each coupled to a respective one of the downstream ports, and an upstream data handler coupled to the upstream port.
- the data handlers are configured to implement a USB protocol.
- the upstream data handler is configured to provide data received via the upstream port to each of the downstream data handlers. Accordingly, the upstream data handler is shared between the various downstream data handlers.
- a method may involve: an upstream port of a USB (Universal Serial Bus) hub operating at a different transfer rate than each of several downstream ports of the USB hub; an upstream handler associated with the upstream port providing data received via the upstream port to each of several downstream handlers, where each of the downstream handlers is associated with a respective one of the downstream ports; and each of the downstream handlers providing data to a respective one of the downstream ports for output.
- USB Universal Serial Bus
- FIG. 1 shows a block diagram of a USB hub, according to one embodiment.
- FIG. 2A is a block diagram of a transaction translator including multiple downstream data handlers that share a single upstream data handler, according to one embodiment.
- FIG. 2B is a block diagram of a transaction translator including multiple downstream data handlers that share a single upstream data handler and a single memory device, according to one embodiment.
- FIG. 3 is a flowchart of one embodiment of a method of operating a USB hub that includes multiple transaction translators that share memory.
- FIG. 4 is a block diagram of a system that includes one or more USB hubs.
- a USB (Universal Serial Bus) hub may include transaction translator functionality to translate data streams for transfer between ports operating at different rates. When data is being transferred between ports operating at the same rate, the data handling devices may be inactive.
- the transaction translator may include an independent data handler for each downstream port. A single data handler at each upstream port may transfer data to and from each of the independent downstream data handlers.
- a USB hub having a transaction translator that includes a single high speed handler and multiple full- and/or low-speed handlers may be used to couple various devices within a computer system.
- a hub may couple a host to one or more devices such as: human interface devices such as mice, keyboards, tablets, digital pens, and game controllers; imaging devices such as printers, scanners, and cameras; mass storage devices such as CD-ROM drives, floppy disk drives, and DVD drives; and other hubs.
- An exemplary USB hub that implements a USB protocol is described with respect to FIGS. 1-4 herein.
- FIG. 1 shows a block diagram of a USB hub 10 , according to one embodiment.
- the USB hub 10 includes an upstream (e.g., facing toward a host) port and four downstream (e.g., facing away from a host) ports. Note that the number of ports may vary among embodiments.
- Each port is coupled to a physical layer device (PHY).
- Upstream PHY 12 couples the upstream port to the hub controller 14 .
- Downstream PHYs 16 A- 16 D (collectively, PHYs 16 ) couple a respective downstream port to transaction translator 20 .
- hub controller 14 may receive a high-speed data stream from upstream PHY 12 and provide the data to transaction translator 20 .
- USB hub 10 may also handle transfers from downstream PHYs 16 to upstream PHY 12 by having transaction translator 20 transform a low- or full-speed data stream received via a downstream PHY 16 into a high-speed data stream for transmission via upstream PHY 12 .
- Each port is an example of a means for receiving a serial data stream.
- Hub 10 may also support communication between high-speed upstream devices and high-speed downstream devices and/or between full- and/or low-speed upstream devices and full- and/or low-speed downstream devices (e.g., via direct connection of the upstream PHY and downstream PHYs).
- the transaction translator 20 may be inactive if the upstream and downstream devices are operating at the same rate.
- the number of downstream data handlers within transaction translator 20 may determine how many of the downstream PHYs 16 are able to transfer data at substantially the same time. For example, if there are four downstream data handlers within transaction translator 20 , each PHY 16 may be able to transfer data at substantially the same time as the other PHYs 16 are transferring data.
- FIG. 2A shows a block diagram of a transaction translator 20 , according to one embodiment.
- the transaction translator includes a data handler 22 or 24 for each port.
- the upstream data handler 22 is shared between the downstream data handlers 24 .
- data may be transferred via each downstream port at substantially the same time.
- a separate high-speed handler 22 may be implemented for each upstream port.
- each high-speed handler 22 may be shared between several downstream handlers 24 .
- transaction translator 20 may translate data streams between the different transfer rates.
- the high-speed handler may store the data into the memory device 30 A- 30 D coupled to the destination full- and/or low-speed handler 24 .
- the upstream data handler 22 may store data received in that data stream in memory device 30 B at a rate substantially similar to the rate at which the data is received.
- the downstream data handler 24 B at the destination port may then read the data out of memory device 30 B at a rate substantially similar to the rate at which data is transferred from the destination downstream port.
- the data may be received via one of the downstream ports for transmission via the upstream port.
- the data may be received via the downstream port coupled to data handler 24 C.
- Data handler 24 C may store the received data in memory device 30 C.
- Data handler 22 may then output the data from memory device 30 C at the higher rate via the upstream port.
- Other downstream data handlers 24 may operate similarly. Due to the inclusion of multiple downstream data handlers, each downstream data handler 24 may be receiving data from a downstream device at substantially the same time as another downstream data handler.
- FIG. 2B illustrates a block diagram of a transaction translator 20 , according to another embodiment.
- a single high-speed handler 22 is shared between several downstream handlers 24 .
- the high-speed handler 22 is configured to send and receive a high-speed data stream via the upstream port.
- the transaction translator 20 may include a shared memory device 30 that is shared between the downstream data handlers 24 , as shown in FIG. 2B .
- Each handler 22 and 24 is configured to send requests to access shared memory device 30 to data buffer controller 26 .
- shared memory device 30 is a single-ported memory device, and thus the high- and full- and/or low-speed handlers arbitrate for access to the shared memory device.
- Data buffer controller 26 is configured to arbitrate between the handlers' requests to determine which handler's request to provide to the shared memory device 30 .
- Data buffer controller 26 may additionally perform address remapping on at least some of the handlers' requests in some embodiments.
- the shared memory device 30 may have more than one port, thus allowing more than one data handler to access the shared memory device at substantially the same time.
- Each handler 22 and 24 includes buffers 32 to store data being transferred to or from shared memory device 30 prior to transmitting that data to another handler or subsequent to receiving that data from one of the hub's ports.
- high-speed handler 22 is configured to receive a high-speed stream of data via the upstream port. Portions of the received data may be temporarily buffered in buffer 32 E while high-speed handler 22 arbitrates for access to shared memory 30 . When access is granted, high-speed handler 22 transfers the buffered data to shared memory 30 .
- buffer 32 E may include two independently accessible buffers so that incoming data can be stored in one buffer while data is written to shared memory device 30 from the other buffer area.
- High-speed handler 22 may also transmit information to the full- and/or low-speed handler 24 that the data stream is being transmitted to indicating the location of the data to be handled by that full- and/or low-speed handler.
- different portions of the shared memory 30 may be allocated to each full- and/or low-speed handler 24 , allowing the high-speed handler 22 to indicate which handler 24 is the recipient of the data stream by writing the data into the portion of the shared memory 30 allocated to that handler.
- the receiving full- and/or low-speed handler 24 may transmit information to the high-speed handler 22 indicating the location of the data in shared memory device 30 .
- High-speed handler 22 may then arbitrate for access to shared memory device 30 and store a portion of the data in buffer 32 E for transfer at the high-speed rate to the upstream port.
- the buffer 32 E may include two independently accessible buffer areas so that data can be transferred to the upstream port from one buffer area while the other buffer area is being loaded with more data from shared memory device 30 .
- buffer 32 E may be a dual-ported device so that data can be transferred into and/or out of the buffer for transfers via the upstream port at substantially the same time as data is also being transferred to and/or from shared memory device 30 .
- the size of each buffer in buffer 32 E may be the same as (or greater than) the amount of data accessible in shared memory device 30 by a single access request in some embodiments.
- the size of the buffers 32 E in the high-speed handler 22 may be larger than the size of buffers 32 A- 32 D in the full- and/or low speed handlers 24 .
- Full- and/or low-speed handlers 24 A- 24 D may each use their respective buffers 32 A- 32 D in much the same way as high speed handler 22 when sending and receiving data via a respective downstream port.
- FIG. 3 is a flowchart of one embodiment of a method of operating a serial bus hub that uses a shared upstream handler to transfer data to several downstream data handlers.
- a serial bus hub may be used to transfer data between connections that are operating at different rates.
- an upstream port of a USB (Universal Serial Bus) hub operates at a different transfer rate than each of several downstream ports of the USB hub.
- the upstream port may receive data from a host to be transferred to destination devices via the downstream ports.
- an upstream port of the hub may receive data from the host in several different data transfers. Each transfer may involve data to be transferred to a different downstream port.
- an upstream data handler associated with the upstream port provides data to each of the downstream handlers.
- the upstream data handler may provide data received in one transfer from the host to one downstream handler and a data received in another transfer from the host to another downstream handler.
- the upstream handler may provide the data to the various downstream handlers by storing the data in various memory devices associated with the downstream handlers.
- Each of the downstream handlers is associated with a respective one of the USB hub's downstream ports.
- each of the downstream handlers provides data to a respective one of the downstream ports, as indicated at 505 .
- the data is then output at the downstream ports' transfer rate, which differs from the transfer rate of the upstream port.
- a serial hub may be configured to implement the USB protocol, which defines a polled bus on which a host may initiate data transfers.
- Typical USB transactions involve several packets.
- the host initiates a transaction by sending a packet indicating the type and direction (upstream or downstream) of the transaction being initiated, the address of the target device, and an endpoint. If a downstream transfer is requested, the target device receives data transferred from the host. Similarly, if an upstream transfer is requested, the target device sends data to the host. A handshake packet may then be sent to the host from the target device to indicate whether the transfer was successful.
- the USB protocol describes the transfer between a source or destination on the host and an endpoint on a device as a pipe. Pipes may be either stream pipes or message pipes.
- Data transferred via a stream pipe has no USB-defined structure, unlike data transferred via a message pipe.
- Different pipes may have different bandwidths, speeds, and endpoint characteristics (e.g., sink or source, buffer size, etc.) and be used to transfer packets of different sizes.
- FIG. 4 illustrates an exemplary computer system that may include one or more USB hubs 10 as described above.
- a hub included within host 12 couples directly to hub 10 , phone 5 E, and monitor 11 B.
- Monitor 11 B includes another hub, which couples directly to microphone 5 D, speaker 5 C and keyboard 11 A.
- Keyboard 11 A includes yet another hub, which couples directly to mouse 5 B and pen 5 A.
- any and/or all of the hubs shown in FIG. 4 may be implemented similarly to those described above. Typically, some of the hubs will connect functions operating at the same rate while other hubs will connect functions operating at different rates.
- transaction translators included in the hub may be used to convert data streams between the different rates. Such transaction translators may share a memory device, as described above. Note that non-USB embodiments of a serial hub may be included in similar computer systems.
- a device that is configured to transmit and/or receive data and/or control information over a USB connection may be referred to as a function.
- Functions are typically implemented as separate peripheral devices that connect to a USB connection, which in turn plugs into a port on a hub.
- exemplary functions include pen 5 A, mouse 5 B, speaker 5 C, microphone 5 D, and phone 5 E.
- Some devices, referred to as compound devices, may be implemented in a single physical package that includes one or more functions and/or a hub.
- Exemplary compound devices in FIG. 4 include keyboard 11 A and monitor 11 B.
- host 12 which may also include a hub that allows the various functions to communicate with the host processor.
- An additional hub 10 may be coupled to the host in order to provide additional connectivity for other devices (e.g., cameras, printers, scanners, etc.).
Abstract
A device may include an upstream port and several downstream ports configured to transfer data at a different data transfer rate than the upstream port. The device may also include several downstream data handlers, each coupled to a respective one of the downstream ports, and an upstream data handler coupled to the upstream port. The data handlers are configured to implement a USB protocol. The upstream data handler is configured to store specific transactions (comprising data) received through the upstream port. Each respective downstream data handler is configured to access respective transactions of the stored specific transactions intended for the downstream port associated with the respective downstream data handler, and transmit to its associated respective downstream port the data comprised in its respective transactions. Accordingly, the upstream data handler is shared between the various downstream data handlers.
Description
- This application is a continuation of application Ser. No. 11/223,570 titled “Universal Serial Bus Hub With Shared High Speed Handler Implementing Respective Downstream Transfer Rates” and filed on Sep. 9, 2005, which is a divisional of application Ser. No. 10/374,852 titled “Universal Serial Bus Hub With Shared High Speed Handler” and filed on Feb. 24, 2003, whose inventor is Piotr Szabelski, both of which are hereby incorporated by reference in their entirety as though fully and completely set forth herein.
- 1. Field of the Invention
- This invention relates to computer systems, and more particularly, to universal serial bus hubs used in computer systems.
- 2. Description of the Related Art
- Components in computer systems communicate over various buses. One popular type of bus is the Universal Serial Bus (USB). The USB is a cable bus that allows a host computer to exchange data with a range of peripheral devices. USB peripherals share USB bandwidth through a host-scheduled, token-based protocol. A USB allows peripherals to be attached, configured, used, and detached while the host and other peripherals are in operation.
- USB hubs allow multiple peripherals to be attached at a single host attachment point. Thus, a hub converts a single host attachment point into multiple peripheral attachment points. Each attachment point is referred to as a port. A hub typically includes an upstream port, which couples the hub to the host, and several downstream ports, which each couple the hub to another hub or peripheral. Each downstream port may be individually enabled and attached to a high-, full-, or low-speed device.
- A USB hub typically includes a hub controller, a hub repeater, and a transaction translator. The hub repeater provides a USB protocol-controlled switch between the upstream port and downstream ports as well as support for reset and suspend/resume signaling. The host controller facilitates communication to and from the host. The transaction translator allows full- and/or low-speed downstream devices to communicate with a high-speed host. Typically, the number of transaction translators included in a USB hub limits the number of simultaneous transfers that can take place to full- and/or low-speed downstream devices used in a system with a high-speed host.
- Various embodiments of a method and apparatus for sharing a single upstream data handler between multiple downstream data handlers in a transaction translator for use in a USB hub are disclosed. In one embodiment, a device may include an upstream port and several downstream ports configured to transfer data at a different data transfer rate than the upstream port. The device may also include several downstream data handlers, each coupled to a respective one of the downstream ports, and an upstream data handler coupled to the upstream port. The data handlers are configured to implement a USB protocol. The upstream data handler is configured to provide data received via the upstream port to each of the downstream data handlers. Accordingly, the upstream data handler is shared between the various downstream data handlers.
- In some embodiments, a method may involve: an upstream port of a USB (Universal Serial Bus) hub operating at a different transfer rate than each of several downstream ports of the USB hub; an upstream handler associated with the upstream port providing data received via the upstream port to each of several downstream handlers, where each of the downstream handlers is associated with a respective one of the downstream ports; and each of the downstream handlers providing data to a respective one of the downstream ports for output.
- Other aspects of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which:
-
FIG. 1 shows a block diagram of a USB hub, according to one embodiment. -
FIG. 2A is a block diagram of a transaction translator including multiple downstream data handlers that share a single upstream data handler, according to one embodiment. -
FIG. 2B is a block diagram of a transaction translator including multiple downstream data handlers that share a single upstream data handler and a single memory device, according to one embodiment. -
FIG. 3 is a flowchart of one embodiment of a method of operating a USB hub that includes multiple transaction translators that share memory. -
FIG. 4 is a block diagram of a system that includes one or more USB hubs. - While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and description thereto are not intended to limit the invention to the particular form disclosed, but, on the contrary, the invention is to cover all modifications, equivalents, and alternatives falling with the spirit and scope of the present invention as defined by the appended claims.
- A USB (Universal Serial Bus) hub may include transaction translator functionality to translate data streams for transfer between ports operating at different rates. When data is being transferred between ports operating at the same rate, the data handling devices may be inactive. The transaction translator may include an independent data handler for each downstream port. A single data handler at each upstream port may transfer data to and from each of the independent downstream data handlers.
- A USB hub having a transaction translator that includes a single high speed handler and multiple full- and/or low-speed handlers may be used to couple various devices within a computer system. For example, a hub may couple a host to one or more devices such as: human interface devices such as mice, keyboards, tablets, digital pens, and game controllers; imaging devices such as printers, scanners, and cameras; mass storage devices such as CD-ROM drives, floppy disk drives, and DVD drives; and other hubs. An exemplary USB hub that implements a USB protocol is described with respect to
FIGS. 1-4 herein. -
FIG. 1 shows a block diagram of aUSB hub 10, according to one embodiment. As shown, theUSB hub 10 includes an upstream (e.g., facing toward a host) port and four downstream (e.g., facing away from a host) ports. Note that the number of ports may vary among embodiments. Each port is coupled to a physical layer device (PHY).Upstream PHY 12 couples the upstream port to thehub controller 14. DownstreamPHYs 16A-16D (collectively, PHYs 16) couple a respective downstream port totransaction translator 20. When the upstream port is operating at high speed and a destination downstream port is operating at full or low speed,hub controller 14 may receive a high-speed data stream from upstream PHY 12 and provide the data totransaction translator 20.USB hub 10 may also handle transfers from downstream PHYs 16 to upstreamPHY 12 by havingtransaction translator 20 transform a low- or full-speed data stream received via a downstream PHY 16 into a high-speed data stream for transmission via upstreamPHY 12. Each port is an example of a means for receiving a serial data stream. - Note that the illustrated embodiment shows portions of a
hub 10 configuration needed to allow a high-speed upstream device to communicate with one or more full- and/or low-speed downstream devices through the use oftransaction translator 20. Hub 10 may also support communication between high-speed upstream devices and high-speed downstream devices and/or between full- and/or low-speed upstream devices and full- and/or low-speed downstream devices (e.g., via direct connection of the upstream PHY and downstream PHYs). Thetransaction translator 20 may be inactive if the upstream and downstream devices are operating at the same rate. - The number of downstream data handlers within
transaction translator 20 may determine how many of the downstream PHYs 16 are able to transfer data at substantially the same time. For example, if there are four downstream data handlers withintransaction translator 20, each PHY 16 may be able to transfer data at substantially the same time as the other PHYs 16 are transferring data. -
FIG. 2A shows a block diagram of atransaction translator 20, according to one embodiment. The transaction translator includes adata handler 22 or 24 for each port. Instead of including an independentupstream data handler 22 for each downstream data handler 24, theupstream data handler 22 is shared between the downstream data handlers 24. By providing an independent data handler 24 for each downstream port, data may be transferred via each downstream port at substantially the same time. Note that in embodiments where multiple upstream ports are implemented, a separate high-speed handler 22 may be implemented for each upstream port. In such embodiments, each high-speed handler 22 may be shared between several downstream handlers 24. - When a the upstream port is operating at high speed and the downstream ports are operating at full- and/or low-speed,
transaction translator 20 may translate data streams between the different transfer rates. In the illustrated embodiment, if a high-speed data stream is being provided totransaction translator 20 via the upstream port, the high-speed handler may store the data into thememory device 30A-30D coupled to the destination full- and/or low-speed handler 24. For example, if thetransaction translator 20 receives a high-speed data stream to be transferred to a low-speed device via the port coupled todownstream handler 24B, theupstream data handler 22 may store data received in that data stream inmemory device 30B at a rate substantially similar to the rate at which the data is received. Thedownstream data handler 24B at the destination port may then read the data out ofmemory device 30B at a rate substantially similar to the rate at which data is transferred from the destination downstream port. - When a downstream device operating at full- or low-speed is sending data to an upstream device operating at high-speed, the data may be received via one of the downstream ports for transmission via the upstream port. For example, the data may be received via the downstream port coupled to
data handler 24C.Data handler 24C may store the received data inmemory device 30C.Data handler 22 may then output the data frommemory device 30C at the higher rate via the upstream port. Other downstream data handlers 24 may operate similarly. Due to the inclusion of multiple downstream data handlers, each downstream data handler 24 may be receiving data from a downstream device at substantially the same time as another downstream data handler. -
FIG. 2B illustrates a block diagram of atransaction translator 20, according to another embodiment. InFIG. 2B , a single high-speed handler 22 is shared between several downstream handlers 24. The high-speed handler 22 is configured to send and receive a high-speed data stream via the upstream port. - In some embodiments, the
transaction translator 20 may include a sharedmemory device 30 that is shared between the downstream data handlers 24, as shown inFIG. 2B . Eachhandler 22 and 24 is configured to send requests to access sharedmemory device 30 todata buffer controller 26. In the illustrated embodiment, sharedmemory device 30 is a single-ported memory device, and thus the high- and full- and/or low-speed handlers arbitrate for access to the shared memory device.Data buffer controller 26 is configured to arbitrate between the handlers' requests to determine which handler's request to provide to the sharedmemory device 30.Data buffer controller 26 may additionally perform address remapping on at least some of the handlers' requests in some embodiments. Note that in other embodiments, the sharedmemory device 30 may have more than one port, thus allowing more than one data handler to access the shared memory device at substantially the same time. - Each
handler 22 and 24 includes buffers 32 to store data being transferred to or from sharedmemory device 30 prior to transmitting that data to another handler or subsequent to receiving that data from one of the hub's ports. For example, high-speed handler 22 is configured to receive a high-speed stream of data via the upstream port. Portions of the received data may be temporarily buffered inbuffer 32E while high-speed handler 22 arbitrates for access to sharedmemory 30. When access is granted, high-speed handler 22 transfers the buffered data to sharedmemory 30. In many embodiments,buffer 32E may include two independently accessible buffers so that incoming data can be stored in one buffer while data is written to sharedmemory device 30 from the other buffer area. High-speed handler 22 may also transmit information to the full- and/or low-speed handler 24 that the data stream is being transmitted to indicating the location of the data to be handled by that full- and/or low-speed handler. Alternatively, different portions of the sharedmemory 30 may be allocated to each full- and/or low-speed handler 24, allowing the high-speed handler 22 to indicate which handler 24 is the recipient of the data stream by writing the data into the portion of the sharedmemory 30 allocated to that handler. - When a data stream received by one of the full- and/or low-speed handlers 24 is being output by high-
speed handler 22, the receiving full- and/or low-speed handler 24 may transmit information to the high-speed handler 22 indicating the location of the data in sharedmemory device 30. High-speed handler 22 may then arbitrate for access to sharedmemory device 30 and store a portion of the data inbuffer 32E for transfer at the high-speed rate to the upstream port. As when high-speed handler 22 is receiving a high-speed data stream, thebuffer 32E may include two independently accessible buffer areas so that data can be transferred to the upstream port from one buffer area while the other buffer area is being loaded with more data from sharedmemory device 30. Note that in other embodiments,buffer 32E may be a dual-ported device so that data can be transferred into and/or out of the buffer for transfers via the upstream port at substantially the same time as data is also being transferred to and/or from sharedmemory device 30. As mentioned previously, there may be more than two independently accessible buffers inbuffer 32E. The size of each buffer inbuffer 32E may be the same as (or greater than) the amount of data accessible in sharedmemory device 30 by a single access request in some embodiments. In some embodiments, the size of thebuffers 32E in the high-speed handler 22 may be larger than the size ofbuffers 32A-32D in the full- and/or low speed handlers 24. - Full- and/or low-
speed handlers 24A-24D may each use theirrespective buffers 32A-32D in much the same way ashigh speed handler 22 when sending and receiving data via a respective downstream port. -
FIG. 3 is a flowchart of one embodiment of a method of operating a serial bus hub that uses a shared upstream handler to transfer data to several downstream data handlers. Such a hub may be used to transfer data between connections that are operating at different rates. At 501, an upstream port of a USB (Universal Serial Bus) hub operates at a different transfer rate than each of several downstream ports of the USB hub. The upstream port may receive data from a host to be transferred to destination devices via the downstream ports. For example, an upstream port of the hub may receive data from the host in several different data transfers. Each transfer may involve data to be transferred to a different downstream port. - At 503, an upstream data handler associated with the upstream port provides data to each of the downstream handlers. For example, the upstream data handler may provide data received in one transfer from the host to one downstream handler and a data received in another transfer from the host to another downstream handler. The upstream handler may provide the data to the various downstream handlers by storing the data in various memory devices associated with the downstream handlers. Each of the downstream handlers is associated with a respective one of the USB hub's downstream ports. In response to receiving the data from the upstream data handler, each of the downstream handlers provides data to a respective one of the downstream ports, as indicated at 505. The data is then output at the downstream ports' transfer rate, which differs from the transfer rate of the upstream port.
- In many embodiments, a serial hub may be configured to implement the USB protocol, which defines a polled bus on which a host may initiate data transfers. Typical USB transactions involve several packets. The host initiates a transaction by sending a packet indicating the type and direction (upstream or downstream) of the transaction being initiated, the address of the target device, and an endpoint. If a downstream transfer is requested, the target device receives data transferred from the host. Similarly, if an upstream transfer is requested, the target device sends data to the host. A handshake packet may then be sent to the host from the target device to indicate whether the transfer was successful. The USB protocol describes the transfer between a source or destination on the host and an endpoint on a device as a pipe. Pipes may be either stream pipes or message pipes. Data transferred via a stream pipe has no USB-defined structure, unlike data transferred via a message pipe. Different pipes may have different bandwidths, speeds, and endpoint characteristics (e.g., sink or source, buffer size, etc.) and be used to transfer packets of different sizes.
-
FIG. 4 illustrates an exemplary computer system that may include one ormore USB hubs 10 as described above. In the embodiment illustrated inFIG. 4 , a hub included withinhost 12 couples directly tohub 10,phone 5E, and monitor 11B.Monitor 11B includes another hub, which couples directly tomicrophone 5D,speaker 5C andkeyboard 11A.Keyboard 11A includes yet another hub, which couples directly to mouse 5B andpen 5A. - Any and/or all of the hubs shown in
FIG. 4 may be implemented similarly to those described above. Typically, some of the hubs will connect functions operating at the same rate while other hubs will connect functions operating at different rates. Whenever a high-speed function communicates with a non-high-speed function via a hub, transaction translators included in the hub may be used to convert data streams between the different rates. Such transaction translators may share a memory device, as described above. Note that non-USB embodiments of a serial hub may be included in similar computer systems. - As shown in
FIG. 4 , several devices in a computer system may be coupled to a host by various USB connections. A device that is configured to transmit and/or receive data and/or control information over a USB connection may be referred to as a function. Functions are typically implemented as separate peripheral devices that connect to a USB connection, which in turn plugs into a port on a hub. InFIG. 4 , exemplary functions includepen 5A, mouse 5B,speaker 5C,microphone 5D, andphone 5E. Some devices, referred to as compound devices, may be implemented in a single physical package that includes one or more functions and/or a hub. Exemplary compound devices inFIG. 4 includekeyboard 11A and monitor 11B. All of these functions are coupled to host 12, which may also include a hub that allows the various functions to communicate with the host processor. Anadditional hub 10 may be coupled to the host in order to provide additional connectivity for other devices (e.g., cameras, printers, scanners, etc.). - Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Claims (31)
1. A device, comprising:
an upstream port configured to operate at a first data transfer rate;
a plurality of downstream ports configured to operate at a different data transfer rate than the first data transfer rate;
an upstream data handler coupled to the upstream port and configured to store specific transactions received through the upstream port, wherein the specific transactions comprise data;
a plurality of downstream data handlers, wherein each respective downstream data handler of the plurality of downstream data handlers is:
associated with a respective downstream port of the plurality of downstream ports;
operable to access respective transactions of the stored specific transactions, wherein the respective transactions are intended for the respective downstream port associated with the respective downstream data handler; and
transmit to its associated respective downstream port, at the different data transfer rate, the data comprised in its respective transactions;
wherein the specific transactions comprise transactions defined by USB (Universal Serial Bus) protocol.
2. The device of claim 1 , wherein the upstream data handler is configured to accept the specific transactions through the upstream port at the first data rate.
3. The device of claim 1 , wherein the upstream data handler is configured to store the data comprised in the specific transactions in a plurality of memory devices; and
wherein each of the plurality of memory devices is associated with a respective one of the plurality of downstream data handlers.
4. The device of claim 1 , wherein the upstream data handler is configured to store the data comprised in the specific transactions in a shared memory device; and
wherein each respective downstream data handler is configured to retrieve the data comprised in its respective transactions from the shared memory device for output via its associated respective downstream port.
5. The device of claim 1 , wherein each respective downstream data handler is configured to provide data to its associated respective downstream port substantially simultaneously with another one of the plurality of downstream data handlers providing data to its associated respective downstream port.
6. The device of claim 1 , wherein the specific transactions comprise USB high-speed split transactions.
7. The device of claim 6 , wherein the high-speed split transactions comprise one or more of:
start-split transactions; or
complete-split transactions.
8. The device of claim 7 , wherein the upstream data handler is configured to accept the start-split transactions and respond to the complete-split transactions.
9. The device of claim 1 , wherein the upstream data handler is a USB high-speed handler, and each respective downstream data handler is a full/low-speed handler.
10. The device of claim 1 , further comprising:
an upstream physical layer device coupled to the upstream port;
a hub controller coupled between the upstream physical layer device and the upstream data handler; and
a plurality of downstream physical layer devices coupled between the plurality of downstream data handlers and the plurality of downstream ports.
11. A method, comprising:
a plurality of downstream ports of a USB (Universal Serial Bus) hub operating at a different transfer rate than an upstream port of the USB hub;
an upstream handler associated with the upstream port accepting through the upstream port, at the first data rate, specific transactions comprising data, and storing the specific transactions;
each respective downstream handler of a plurality of downstream handlers accessing respective transactions of the stored specific transactions, wherein each respective downstream handler is associated with a respective downstream port of the plurality of downstream ports, and wherein the respective transactions are intended for the respective downstream port; and
each respective downstream handler transmitting to its associated respective downstream port, at the different data transfer rate, the data comprised in its respective transactions.
12. The method of claim 11 , wherein said storing the specific transactions comprises storing the specific transactions in a plurality of memory devices; and wherein each of the plurality of memory devices is associated with a respective downstream handler.
13. The method of claim 11 , wherein said storing the specific transactions comprises storing the specific transactions in a shared memory device, the method further comprising:
each respective downstream handler retrieving the data comprised in its respective transactions from the shared memory device.
14. The method of claim 13 , wherein said each respective downstream handler transmitting to its associated respective downstream port includes the plurality of downstream data handlers transmitting to their associated respective ones of the plurality of downstream ports simultaneously.
15. A system, comprising:
a shared memory device;
a faster handler configured to store in the shared memory device specific transactions intended for a plurality of slower ports and received through a faster port;
a plurality of slower handlers each coupled to the shared memory device to access respective ones of the stored specific transactions, and transfer data comprised in the respective ones of the stored specific transactions to a respective one of the plurality of slower ports, wherein the plurality of slower ports have respective lower data transfer rates than the faster port;
wherein the faster handler and each of at least two of the slower handlers are conjunctively operable to use the shared memory device to convert from one respective data transfer rate to another respective data transfer rate; and
wherein the faster handler and the plurality of slower handlers are configured to implement a USB (Universal Serial Bus) protocol.
16. The system of claim 15 , wherein the faster handler includes at least two buffers, wherein the faster handler is configured to transfer data between the faster port and one of the at least two buffers while also transferring data between the shared memory device and a different one of the at least two buffers.
17. The system of claim 16 , wherein a capacity of each of the at least two buffers is equal to an amount of data accessible in the shared memory device in response to a single request initiated by the faster handler.
18. The system of claim 15 , further comprising:
a memory arbiter coupled to the shared memory device, the faster handler, and the plurality of slower handlers and configured to arbitrate between requests to access the shared memory device generated by the faster handler and the plurality of slower handlers.
19. The system of claim 18 , wherein the memory arbiter is configured to allow the faster handler to access the shared memory device more frequently than any of the plurality of slower handlers access the shared memory device.
20. The system of claim 18 , wherein the memory arbiter is configured to allow the faster handler to access the shared memory device at least every other arbitration cycle in the memory arbiter.
21. The system of claim 18 , wherein there are N slower handlers in the plurality of slower handlers, and wherein the memory arbiter is configured to allow one of the plurality of slower handlers to access the shared memory device at least every 2N arbitration cycles in the memory arbiter, wherein N is a positive integer.
22. The system of claim 18 , wherein the memory arbiter is configured to arbitrate between the plurality of slower handlers on a round-robin basis.
23. The system of claim 18 , wherein the memory arbiter is configured to map data written by the faster handler into a region of the shared memory device corresponding to one of the plurality of slower handlers to which the data is being transferred.
24. The system of claim 18 , wherein the memory arbiter is configured to map data written by one of the plurality of slower handlers into a region of the shared memory device corresponding to that one of the slower handlers.
25. The system of claim 15 , wherein the shared memory device is a single-ported memory device.
26. A method, comprising:
a plurality of ports in a USB (Universal Serial Bus) hub each receiving a respective data stream, wherein at least one of the plurality of ports receives its respective data stream at a different rate than other ones of the plurality of ports, wherein a respective one of a plurality of handlers is associated with each of the plurality of ports, wherein the plurality of handlers are configured to implement a USB protocol;
arbitrating between the plurality of handlers for access to a shared memory device;
a first handler, associated with a port of the at least one of the plurality of ports, storing, in response to being selected by said arbitrating, to the shared memory device specific transactions included in the respective data stream received by the port of the at least one of the plurality of ports;
each of at least two handlers associated with respective ports of the other ones of the plurality of ports accessing the specific transactions and transmitting data comprised in the specific transactions to the respective ports of the other ones of the plurality of ports; and
wherein the first handler and each of the at least two handlers associated with respective ports of the other ones of the plurality of ports are conjunctively operable to convert from one respective data transfer rate to another respective data transfer rate.
27. The method of claim 26 , wherein the first handler is a faster handler and the port of the at least one of the plurality of ports is a faster port of the plurality of ports, wherein the faster handler includes at least two buffers, wherein the faster handler is configured to transfer data between the faster port and one of the at least two buffers while also transferring data between the shared memory device and a different one of the at least two buffers.
28. The method of claim 27 , wherein a capacity of each of the at least two buffers is equal to an amount of data accessible in the shared memory device in response to a single request initiated by the faster handler.
29. The method of claim 26 , wherein the first handler is a faster handler associated with a faster port of the plurality of ports, wherein said arbitrating allows the faster handler to access the shared memory device more frequently than any other handlers of the plurality of handlers.
30. The method of claim 26 , wherein the shared memory device is a single-ported memory device.
31. The method of claim 26 , wherein the specific transactions are high-speed split transactions.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/340,916 US20090100209A1 (en) | 2003-02-24 | 2008-12-22 | Universal serial bus hub with shared high speed handler |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/374,852 US6959355B2 (en) | 2003-02-24 | 2003-02-24 | Universal serial bus hub with shared high speed handler |
US11/223,570 US7484018B2 (en) | 2003-02-24 | 2005-09-09 | Universal serial bus hub with shared high speed handler implementing respective downstream transfer rates |
US12/340,916 US20090100209A1 (en) | 2003-02-24 | 2008-12-22 | Universal serial bus hub with shared high speed handler |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/223,570 Continuation US7484018B2 (en) | 2003-02-24 | 2005-09-09 | Universal serial bus hub with shared high speed handler implementing respective downstream transfer rates |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090100209A1 true US20090100209A1 (en) | 2009-04-16 |
Family
ID=32868957
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/374,852 Expired - Lifetime US6959355B2 (en) | 2003-02-24 | 2003-02-24 | Universal serial bus hub with shared high speed handler |
US11/223,570 Expired - Lifetime US7484018B2 (en) | 2003-02-24 | 2005-09-09 | Universal serial bus hub with shared high speed handler implementing respective downstream transfer rates |
US12/340,916 Abandoned US20090100209A1 (en) | 2003-02-24 | 2008-12-22 | Universal serial bus hub with shared high speed handler |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/374,852 Expired - Lifetime US6959355B2 (en) | 2003-02-24 | 2003-02-24 | Universal serial bus hub with shared high speed handler |
US11/223,570 Expired - Lifetime US7484018B2 (en) | 2003-02-24 | 2005-09-09 | Universal serial bus hub with shared high speed handler implementing respective downstream transfer rates |
Country Status (1)
Country | Link |
---|---|
US (3) | US6959355B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120454A1 (en) * | 2006-11-17 | 2008-05-22 | Chi-Tung Chang | Integrated hub control chip |
US20120079145A1 (en) * | 2010-09-23 | 2012-03-29 | Chang Nai-Chih | Root hub virtual transaction translator |
US8386580B1 (en) * | 2009-10-02 | 2013-02-26 | Smsc Holdings S.A.R.L. | Shared buffer for data communications routed through hub |
US20130346650A1 (en) * | 2012-06-25 | 2013-12-26 | Ricoh Company, Ltd. | Controller, electronic equipment unit, and usb device control method |
US20140059162A1 (en) * | 2012-08-24 | 2014-02-27 | Facebook Inc. | Distributed information synchronization |
US9208189B2 (en) | 2012-08-24 | 2015-12-08 | Facebook, Inc. | Distributed request processing |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050010906A (en) * | 2002-06-12 | 2005-01-28 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | Bus system, station for use in a bus system, and bus interface |
US7185126B2 (en) * | 2003-02-24 | 2007-02-27 | Standard Microsystems Corporation | Universal serial bus hub with shared transaction translator memory |
US6959355B2 (en) * | 2003-02-24 | 2005-10-25 | Standard Microsystems Corporation | Universal serial bus hub with shared high speed handler |
TWI225988B (en) * | 2003-03-11 | 2005-01-01 | Prolific Technology Inc | Apparatus provided with USB host/hub and method for controlling the same |
US20060059293A1 (en) * | 2004-09-14 | 2006-03-16 | Henry Wurzburg | Universal serial bus switching hub |
US20060056401A1 (en) * | 2004-09-14 | 2006-03-16 | Standard Microsystems Corporation | Peripheral sharing USB hub |
US20060227759A1 (en) * | 2004-09-14 | 2006-10-12 | Bohm Mark R | Peripheral Sharing USB Hub |
JP4259446B2 (en) * | 2004-10-12 | 2009-04-30 | セイコーエプソン株式会社 | Transceiver, data transfer control device, and electronic device |
JP2006113670A (en) * | 2004-10-12 | 2006-04-27 | Seiko Epson Corp | Electronic device |
US20060181912A1 (en) * | 2005-01-21 | 2006-08-17 | Iyer Sree M | Low-power solid state storage controller for cell phones and other portable appliances |
JP4398386B2 (en) * | 2005-01-28 | 2010-01-13 | 富士通株式会社 | Device for interconnecting multiple processing nodes via serial bus |
US7433990B2 (en) * | 2006-01-24 | 2008-10-07 | Standard Microsystems Corporation | Transferring system information via universal serial bus (USB) |
US7523243B2 (en) * | 2006-04-14 | 2009-04-21 | Standard Microsystems Corporation | Multi-host USB device controller |
US7480753B2 (en) * | 2006-04-27 | 2009-01-20 | Standard Microsystems Corporation | Switching upstream and downstream logic between ports in a universal serial bus hub |
US20080005262A1 (en) * | 2006-06-16 | 2008-01-03 | Henry Wurzburg | Peripheral Sharing USB Hub for a Wireless Host |
CN101192184B (en) * | 2006-11-17 | 2012-07-04 | 鸿富锦精密工业(深圳)有限公司 | Data transmitting test device and method |
US7761627B2 (en) * | 2006-12-22 | 2010-07-20 | Qualcomm Incorporated | Wireless USB hub |
US20090063717A1 (en) * | 2007-08-28 | 2009-03-05 | Bohm Mark R | Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface |
US8261002B2 (en) * | 2007-09-11 | 2012-09-04 | Quicklogic Corporation | PHY-less ULPI and UTMI bridges |
US8085008B2 (en) | 2009-05-04 | 2011-12-27 | Texas Instruments Incorporated | System for accounting for switch impendances |
US20110022769A1 (en) * | 2009-07-26 | 2011-01-27 | Cpo Technologies Corporation | Translation USB Intermediate Device and Data Rate Apportionment USB Intermediate Device |
US8135883B2 (en) * | 2010-01-19 | 2012-03-13 | Standard Microsystems Corporation | USB hub apparatus supporting multiple high speed devices and a single super speed device |
US8549204B2 (en) * | 2010-02-25 | 2013-10-01 | Fresco Logic, Inc. | Method and apparatus for scheduling transactions in a multi-speed bus environment |
US20110208891A1 (en) * | 2010-02-25 | 2011-08-25 | Fresco Logic, Inc. | Method and apparatus for tracking transactions in a multi-speed bus environment |
US8364870B2 (en) | 2010-09-30 | 2013-01-29 | Cypress Semiconductor Corporation | USB port connected to multiple USB compliant devices |
US8799532B2 (en) | 2011-07-07 | 2014-08-05 | Smsc Holdings S.A.R.L. | High speed USB hub with full speed to high speed transaction translator |
KR102039113B1 (en) * | 2011-08-10 | 2019-10-31 | 기타 스리바스타바 | Apparatus and method for enhancing security of data on a host computing device and a peripheral device |
TWI598738B (en) * | 2012-12-24 | 2017-09-11 | 宏碁股份有限公司 | An interface extension device |
EP3152666B1 (en) * | 2014-06-04 | 2021-05-19 | Moduware PTY LTD | Super hub system and method thereof |
SG11201609927UA (en) | 2014-06-04 | 2016-12-29 | Nexpack Ltd | Battery-powered platform for interchangeable modules |
CN112612423A (en) * | 2020-12-29 | 2021-04-06 | 芯启源电子科技有限公司 | USB shared storage device |
Citations (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784581A (en) * | 1996-05-03 | 1998-07-21 | Intel Corporation | Apparatus and method for operating a peripheral device as either a master device or a slave device |
US5815167A (en) * | 1996-06-27 | 1998-09-29 | Intel Corporation | Method and apparatus for providing concurrent access by a plurality of agents to a shared memory |
US5890015A (en) * | 1996-12-20 | 1999-03-30 | Intel Corporation | Method and apparatus for implementing a wireless universal serial bus host controller by interfacing a universal serial bus hub as a universal serial bus device |
US5953511A (en) * | 1997-04-08 | 1999-09-14 | National Instruments Corporation | PCI bus to IEEE 1394 bus translator |
US6119196A (en) * | 1997-06-30 | 2000-09-12 | Sun Microsystems, Inc. | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates |
US6141719A (en) * | 1998-12-10 | 2000-10-31 | Network Technologies, Inc. | USB selector switch |
US6145045A (en) * | 1998-01-07 | 2000-11-07 | National Semiconductor Corporation | System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points |
US6185641B1 (en) * | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
US6205501B1 (en) * | 1998-01-07 | 2001-03-20 | National Semiconductor Corp. | Apparatus and method for handling universal serial bus control transfers |
US6279060B1 (en) * | 1998-12-04 | 2001-08-21 | In-System Design, Inc. | Universal serial bus peripheral bridge simulates a device disconnect condition to a host when the device is in a not-ready condition to avoid wasting bus resources |
US6292851B1 (en) * | 1997-11-28 | 2001-09-18 | Oki Electric Industry Co., Ltd. | System for allowing a supervisory module to obtain alarm and status information from at least one supervised module without having to specify physical addresses |
US6304995B1 (en) * | 1999-01-26 | 2001-10-16 | Trw Inc. | Pipelined architecture to decode parallel and serial concatenated codes |
US6308239B1 (en) * | 1996-11-07 | 2001-10-23 | Hitachi, Ltd. | Interface switching apparatus and switching control method |
US6324605B1 (en) * | 1998-12-10 | 2001-11-27 | Network Technologies, Inc. | Computer and peripheral switch with USB |
US6435904B1 (en) * | 2001-06-01 | 2002-08-20 | Fellowes, Inc. | Multiple peripheral connection device for connecting multiple peripheral devices to a host device |
US20020154625A1 (en) * | 2001-04-20 | 2002-10-24 | James Ma | Method and apparatus for implementing low latency crossbar switches with integrated storage signals |
US6480927B1 (en) * | 1997-12-31 | 2002-11-12 | Unisys Corporation | High-performance modular memory system with crossbar connections |
US6532512B1 (en) * | 1998-08-28 | 2003-03-11 | Matsushita Electric Industrial Co., Ltd. | Selectively coupling an upstream terminal to a USB hub circuit in accordance with a video sync signal |
US20030072304A1 (en) * | 2001-10-17 | 2003-04-17 | Broadcom Corporation | Point-to-multipoint network interface |
US6564275B1 (en) * | 1999-05-28 | 2003-05-13 | Aten International Co., Ltd. | Electronic switching device for a universal serial bus interface |
US6601146B2 (en) * | 1998-06-16 | 2003-07-29 | International Business Machines Corporation | Technique for efficiently transferring moderate amounts of data across address space boundary |
US6600739B1 (en) * | 1999-06-07 | 2003-07-29 | Hughes Electronics Corporation | Method and apparatus for switching among a plurality of universal serial bus host devices |
US20030142683A1 (en) * | 2002-01-25 | 2003-07-31 | Barry Lam | Method and apparatus for a flexible peripheral access router |
US6671765B1 (en) * | 1999-11-22 | 2003-12-30 | Texas Instruments Incorporated | Architecture enabling code overlay using a dedicated endpoint |
US6678760B2 (en) * | 1998-01-07 | 2004-01-13 | National Semiconductor Corporation | Apparatus and method of transmitting and receiving USB isochronous data |
US20040019732A1 (en) * | 2002-07-26 | 2004-01-29 | Overtoom Eric J. | Dual-role compatible USB hub device and method |
US6725302B1 (en) * | 1999-09-23 | 2004-04-20 | International Business Machines Corporation | Universal serial bus (USB) with wireless communication hubs |
US20040088449A1 (en) * | 2002-11-01 | 2004-05-06 | Matsushita Electric Industrial Co., Ltd. | USB unit control method and a USB unit controller |
US20040111544A1 (en) * | 2002-12-09 | 2004-06-10 | Bennett Dwayne H. | Method and apparatus for driving two identical devices with a single UBS port |
US20040153597A1 (en) * | 2001-03-27 | 2004-08-05 | Toshinobu Kanai | Communication control semiconductor device and interface system |
US6775733B2 (en) * | 2001-06-04 | 2004-08-10 | Winbond Electronics Corp. | Interface for USB host controller and root hub |
US20040168001A1 (en) * | 2003-02-24 | 2004-08-26 | Piotr Szabelski | Universal serial bus hub with shared transaction translator memory |
US20040168009A1 (en) * | 2003-02-24 | 2004-08-26 | Piotr Szabelski | Universal serial bus hub with shared high speed handler |
US6816929B2 (en) * | 2000-06-21 | 2004-11-09 | Nec Electronics Corporation | Data transfer control method and controller for universal serial bus interface |
US20040225808A1 (en) * | 2001-03-01 | 2004-11-11 | Ravikumar Govindaraman | Transceiver macrocell architecture allowing upstream and downstream operation |
US20050060636A1 (en) * | 2003-09-15 | 2005-03-17 | Zsolt Mathe | Digital photo album |
US6993620B2 (en) * | 2003-06-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | User resource sharing through the USB interface |
US20060056401A1 (en) * | 2004-09-14 | 2006-03-16 | Standard Microsystems Corporation | Peripheral sharing USB hub |
US20060059293A1 (en) * | 2004-09-14 | 2006-03-16 | Henry Wurzburg | Universal serial bus switching hub |
US7024501B1 (en) * | 2002-11-18 | 2006-04-04 | Cypress Semiconductor Corp. | Method and apparatus for attaching USB peripherals to host ports |
US7028133B1 (en) * | 1999-04-30 | 2006-04-11 | Daniel Kelvin Jackson | Method and apparatus for extending communications over USB |
US7028114B1 (en) * | 1999-08-11 | 2006-04-11 | Henry Milan | Universal serial bus hub with wireless communication to remote peripheral device |
US20060227759A1 (en) * | 2004-09-14 | 2006-10-12 | Bohm Mark R | Peripheral Sharing USB Hub |
US7275885B2 (en) * | 2003-12-23 | 2007-10-02 | Young-Chul Byun | Cosmetics brush |
US7281330B2 (en) * | 2004-05-27 | 2007-10-16 | Silverbrook Research Pty Ltd | Method of manufacturing left-handed and right-handed printhead modules |
US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
US7290852B2 (en) * | 2004-05-27 | 2007-11-06 | Silverbrook Research Pty Ltd | Printhead module having a dropped row |
US7314261B2 (en) * | 2004-05-27 | 2008-01-01 | Silverbrook Research Pty Ltd | Printhead module for expelling ink from nozzles in groups, alternately, starting at outside nozzles of each group |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870668A (en) * | 1995-08-18 | 1999-02-09 | Fujitsu Limited | Amplifier having distortion compensation and base station for radio communication using the same |
JP3769800B2 (en) * | 1996-01-12 | 2006-04-26 | 株式会社Sumco | Single crystal pulling device |
US5903777A (en) * | 1997-10-02 | 1999-05-11 | National Semiconductor Corp. | Increasing the availability of the universal serial bus interconnects |
US6233640B1 (en) | 1999-03-19 | 2001-05-15 | In-System Design, Inc. | Universal serial bus peripheral bridge with sequencer |
JP2000242377A (en) | 1999-02-24 | 2000-09-08 | Nec Corp | Display device |
JP3202723B2 (en) * | 1999-03-25 | 2001-08-27 | 新潟日本電気株式会社 | USB unit |
GB9909849D0 (en) | 1999-04-28 | 1999-06-23 | Adder Tech Ltd | Usb switching device and system |
JP2001043178A (en) | 1999-07-30 | 2001-02-16 | Nec Home Electronics Ltd | Switching device |
JP2001229119A (en) | 2000-02-16 | 2001-08-24 | Hitachi Ltd | Device selection hubbox by plural computers |
US6718423B2 (en) * | 2000-12-29 | 2004-04-06 | Gateway, Inc. | Bus hub with a selectable number of ports |
TW518502B (en) * | 2001-07-13 | 2003-01-21 | Prolific Technology Inc | USB compound device and the realization method thereof |
AU2002319929A1 (en) * | 2001-07-16 | 2003-03-03 | Han Gyoo Kim | Scheme for dynamically connecting i/o devices through network |
US7028124B2 (en) * | 2001-09-26 | 2006-04-11 | Intel Corporation | Method and apparatus for dual queue head processing of interrupt endpoints |
US20030232648A1 (en) * | 2002-06-14 | 2003-12-18 | Prindle Joseph Charles | Videophone and videoconferencing apparatus and method for a video game console |
KR20040008365A (en) | 2002-07-18 | 2004-01-31 | 삼성전자주식회사 | Apparatus and method for display |
US20050080638A1 (en) * | 2003-10-10 | 2005-04-14 | Geoffrey Maseruka | Product marketing system and method |
KR100490068B1 (en) | 2004-09-22 | 2005-05-17 | 서명석 | Teaching desk with interface |
-
2003
- 2003-02-24 US US10/374,852 patent/US6959355B2/en not_active Expired - Lifetime
-
2005
- 2005-09-09 US US11/223,570 patent/US7484018B2/en not_active Expired - Lifetime
-
2008
- 2008-12-22 US US12/340,916 patent/US20090100209A1/en not_active Abandoned
Patent Citations (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784581A (en) * | 1996-05-03 | 1998-07-21 | Intel Corporation | Apparatus and method for operating a peripheral device as either a master device or a slave device |
US5815167A (en) * | 1996-06-27 | 1998-09-29 | Intel Corporation | Method and apparatus for providing concurrent access by a plurality of agents to a shared memory |
US6308239B1 (en) * | 1996-11-07 | 2001-10-23 | Hitachi, Ltd. | Interface switching apparatus and switching control method |
US6622195B2 (en) * | 1996-11-07 | 2003-09-16 | Hitachi, Ltd. | Interface switching apparatus and switching control method |
US5890015A (en) * | 1996-12-20 | 1999-03-30 | Intel Corporation | Method and apparatus for implementing a wireless universal serial bus host controller by interfacing a universal serial bus hub as a universal serial bus device |
US5953511A (en) * | 1997-04-08 | 1999-09-14 | National Instruments Corporation | PCI bus to IEEE 1394 bus translator |
US6185641B1 (en) * | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
US6119196A (en) * | 1997-06-30 | 2000-09-12 | Sun Microsystems, Inc. | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates |
US6292851B1 (en) * | 1997-11-28 | 2001-09-18 | Oki Electric Industry Co., Ltd. | System for allowing a supervisory module to obtain alarm and status information from at least one supervised module without having to specify physical addresses |
US6480927B1 (en) * | 1997-12-31 | 2002-11-12 | Unisys Corporation | High-performance modular memory system with crossbar connections |
US6205501B1 (en) * | 1998-01-07 | 2001-03-20 | National Semiconductor Corp. | Apparatus and method for handling universal serial bus control transfers |
US6145045A (en) * | 1998-01-07 | 2000-11-07 | National Semiconductor Corporation | System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points |
US6678760B2 (en) * | 1998-01-07 | 2004-01-13 | National Semiconductor Corporation | Apparatus and method of transmitting and receiving USB isochronous data |
US6601146B2 (en) * | 1998-06-16 | 2003-07-29 | International Business Machines Corporation | Technique for efficiently transferring moderate amounts of data across address space boundary |
US6532512B1 (en) * | 1998-08-28 | 2003-03-11 | Matsushita Electric Industrial Co., Ltd. | Selectively coupling an upstream terminal to a USB hub circuit in accordance with a video sync signal |
US6279060B1 (en) * | 1998-12-04 | 2001-08-21 | In-System Design, Inc. | Universal serial bus peripheral bridge simulates a device disconnect condition to a host when the device is in a not-ready condition to avoid wasting bus resources |
US6324605B1 (en) * | 1998-12-10 | 2001-11-27 | Network Technologies, Inc. | Computer and peripheral switch with USB |
US6141719A (en) * | 1998-12-10 | 2000-10-31 | Network Technologies, Inc. | USB selector switch |
US6304995B1 (en) * | 1999-01-26 | 2001-10-16 | Trw Inc. | Pipelined architecture to decode parallel and serial concatenated codes |
US7028133B1 (en) * | 1999-04-30 | 2006-04-11 | Daniel Kelvin Jackson | Method and apparatus for extending communications over USB |
US6564275B1 (en) * | 1999-05-28 | 2003-05-13 | Aten International Co., Ltd. | Electronic switching device for a universal serial bus interface |
US6600739B1 (en) * | 1999-06-07 | 2003-07-29 | Hughes Electronics Corporation | Method and apparatus for switching among a plurality of universal serial bus host devices |
US7028114B1 (en) * | 1999-08-11 | 2006-04-11 | Henry Milan | Universal serial bus hub with wireless communication to remote peripheral device |
US6725302B1 (en) * | 1999-09-23 | 2004-04-20 | International Business Machines Corporation | Universal serial bus (USB) with wireless communication hubs |
US6671765B1 (en) * | 1999-11-22 | 2003-12-30 | Texas Instruments Incorporated | Architecture enabling code overlay using a dedicated endpoint |
US6816929B2 (en) * | 2000-06-21 | 2004-11-09 | Nec Electronics Corporation | Data transfer control method and controller for universal serial bus interface |
US20040225808A1 (en) * | 2001-03-01 | 2004-11-11 | Ravikumar Govindaraman | Transceiver macrocell architecture allowing upstream and downstream operation |
US20040153597A1 (en) * | 2001-03-27 | 2004-08-05 | Toshinobu Kanai | Communication control semiconductor device and interface system |
US20020154625A1 (en) * | 2001-04-20 | 2002-10-24 | James Ma | Method and apparatus for implementing low latency crossbar switches with integrated storage signals |
US6435904B1 (en) * | 2001-06-01 | 2002-08-20 | Fellowes, Inc. | Multiple peripheral connection device for connecting multiple peripheral devices to a host device |
US6775733B2 (en) * | 2001-06-04 | 2004-08-10 | Winbond Electronics Corp. | Interface for USB host controller and root hub |
US20030072304A1 (en) * | 2001-10-17 | 2003-04-17 | Broadcom Corporation | Point-to-multipoint network interface |
US20030142683A1 (en) * | 2002-01-25 | 2003-07-31 | Barry Lam | Method and apparatus for a flexible peripheral access router |
US6732218B2 (en) * | 2002-07-26 | 2004-05-04 | Motorola, Inc. | Dual-role compatible USB hub device and method |
US20040019732A1 (en) * | 2002-07-26 | 2004-01-29 | Overtoom Eric J. | Dual-role compatible USB hub device and method |
US20040088449A1 (en) * | 2002-11-01 | 2004-05-06 | Matsushita Electric Industrial Co., Ltd. | USB unit control method and a USB unit controller |
US7024501B1 (en) * | 2002-11-18 | 2006-04-04 | Cypress Semiconductor Corp. | Method and apparatus for attaching USB peripherals to host ports |
US20040111544A1 (en) * | 2002-12-09 | 2004-06-10 | Bennett Dwayne H. | Method and apparatus for driving two identical devices with a single UBS port |
US20040168001A1 (en) * | 2003-02-24 | 2004-08-26 | Piotr Szabelski | Universal serial bus hub with shared transaction translator memory |
US6959355B2 (en) * | 2003-02-24 | 2005-10-25 | Standard Microsystems Corporation | Universal serial bus hub with shared high speed handler |
US20040168009A1 (en) * | 2003-02-24 | 2004-08-26 | Piotr Szabelski | Universal serial bus hub with shared high speed handler |
US6993620B2 (en) * | 2003-06-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | User resource sharing through the USB interface |
US20050060636A1 (en) * | 2003-09-15 | 2005-03-17 | Zsolt Mathe | Digital photo album |
US7275885B2 (en) * | 2003-12-23 | 2007-10-02 | Young-Chul Byun | Cosmetics brush |
US7281330B2 (en) * | 2004-05-27 | 2007-10-16 | Silverbrook Research Pty Ltd | Method of manufacturing left-handed and right-handed printhead modules |
US7290852B2 (en) * | 2004-05-27 | 2007-11-06 | Silverbrook Research Pty Ltd | Printhead module having a dropped row |
US7314261B2 (en) * | 2004-05-27 | 2008-01-01 | Silverbrook Research Pty Ltd | Printhead module for expelling ink from nozzles in groups, alternately, starting at outside nozzles of each group |
US20060056401A1 (en) * | 2004-09-14 | 2006-03-16 | Standard Microsystems Corporation | Peripheral sharing USB hub |
US20060059293A1 (en) * | 2004-09-14 | 2006-03-16 | Henry Wurzburg | Universal serial bus switching hub |
US20060227759A1 (en) * | 2004-09-14 | 2006-10-12 | Bohm Mark R | Peripheral Sharing USB Hub |
US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120454A1 (en) * | 2006-11-17 | 2008-05-22 | Chi-Tung Chang | Integrated hub control chip |
US8386580B1 (en) * | 2009-10-02 | 2013-02-26 | Smsc Holdings S.A.R.L. | Shared buffer for data communications routed through hub |
US20120079145A1 (en) * | 2010-09-23 | 2012-03-29 | Chang Nai-Chih | Root hub virtual transaction translator |
WO2012040069A2 (en) * | 2010-09-23 | 2012-03-29 | Intel Corporation | Root hub virtual transaction translator |
WO2012040069A3 (en) * | 2010-09-23 | 2012-06-07 | Intel Corporation | Root hub virtual transaction translator |
US8539131B2 (en) * | 2010-09-23 | 2013-09-17 | Intel Corporation | Root hub virtual transaction translator |
US20130346650A1 (en) * | 2012-06-25 | 2013-12-26 | Ricoh Company, Ltd. | Controller, electronic equipment unit, and usb device control method |
US9098640B2 (en) * | 2012-06-25 | 2015-08-04 | Ricoh Company, Ltd. | Controller, electronic equipment unit, and USB device control method |
US20140059162A1 (en) * | 2012-08-24 | 2014-02-27 | Facebook Inc. | Distributed information synchronization |
US8868525B2 (en) * | 2012-08-24 | 2014-10-21 | Facebook, Inc. | Distributed information synchronization |
US9208189B2 (en) | 2012-08-24 | 2015-12-08 | Facebook, Inc. | Distributed request processing |
Also Published As
Publication number | Publication date |
---|---|
US6959355B2 (en) | 2005-10-25 |
US7484018B2 (en) | 2009-01-27 |
US20040168009A1 (en) | 2004-08-26 |
US20060020737A1 (en) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7484018B2 (en) | Universal serial bus hub with shared high speed handler implementing respective downstream transfer rates | |
US7185126B2 (en) | Universal serial bus hub with shared transaction translator memory | |
CA2236225C (en) | Dynamically allocating space in ram shared between multiple usb endpoints and usb host | |
US7328300B2 (en) | Method and system for keeping two independent busses coherent | |
US5761464A (en) | Prefetching variable length data | |
US7627708B2 (en) | Multi-host USB device | |
US6131135A (en) | Arbitration method for a system with two USB host controllers | |
US7496699B2 (en) | DMA descriptor queue read and cache write pointer arrangement | |
JP4447892B2 (en) | Data communication system and method incorporating multi-core communication module | |
US7240141B2 (en) | Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor | |
TWI772279B (en) | Method, system and apparauts for qos-aware io management for pcie storage system with reconfigurable multi -ports | |
US5678064A (en) | Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives | |
JP2002149592A (en) | Pci bridge on network | |
US8041872B1 (en) | Enabling multiple devices using a single bus bridge | |
JP4444101B2 (en) | Bus system, station for use in the bus system, and bus interface | |
US8032675B2 (en) | Dynamic memory buffer allocation method and system | |
US20040111532A1 (en) | Method, system, and program for adding operations to structures | |
US20170031841A1 (en) | Peripheral Device Connection to Multiple Peripheral Hosts | |
KR100375816B1 (en) | PCI bus controller having DMA interface and HPI of DSP | |
US6484218B1 (en) | Method for improving direct memory access performance | |
US6742074B2 (en) | Bus to system memory delayed read processing | |
US5809333A (en) | System for implementing peripheral device bus mastering in desktop PC via hardware state machine for programming DMA controller, generating command signals and receiving completion status | |
US20030009532A1 (en) | Multiprocessor system having a shared main memory | |
JP2005062940A (en) | Input/output controller | |
EP0899657A2 (en) | Message passing between computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: STANDARD MICROSYSTEMS CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SZABELSKI, PIOTR;REEL/FRAME:022014/0349 Effective date: 20030218 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |