USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
First Claim
1. A dual-mode Universal-Serial-Bus (USB) switch comprising:
- a USB upstream interface to a host USB bus for connecting to a host;
a plurality of USB downstream interfaces that connect to USB bus segments for connecting to a plurality of memory blocks;
a virtual USB bridge for connecting the USB upstream interface to the plurality of USB downstream interfaces; and
a transaction manager, coupled to control the virtual USB bridge to act as a USB hub by passing USB packets from the host to the plurality of memory blocks through the virtual USB bridge when operating in a hub mode, but for acting as a single USB endpoint to the host when operating in a single-endpoint mode;
wherein the transaction manager passes data between the host and the memory blocks but intercepts and modifies packets from the host to generates secondary USB packets over the USB bus segments to the memory blocks when operating in the single-endpoint mode;
wherein the transaction manager re-orders secondary packets to the memory blocks on the USB bus segments relative to a packet order of corresponding packets on the host USB bus to initiate overlapping accesses of two of the memory blocks;
wherein the memory blocks and the USB bus segments are hidden from the host by the transaction manager when operating in the single-endpoint mode, but visible as USB endpoints to the host when operating in hub mode,whereby the dual-mode USB switch operates in modes having multiple endpoints or a single endpoint for multiple downstream memory blocks.
2 Assignments
0 Petitions
Accused Products
Abstract
A dual-mode Universal-Serial-Bus (USB) switch can operate in a normal hub mode to buffer transactions from a host to multiple USB flash storage blocks that are USB endpoints. When operating in a single-endpoint mode, the dual-mode USB switch intercepts packets from the host and responds to the host as a single USB endpoint. The USB switch aggregates all downstream USB flash storage blocks and reports a single pool of memory to the host as a single virtual USB memory. Adjacent transactions can be overlapped by packet re-ordering. A token packet that starts a following transaction is re-ordered to be sent to the USB flash storage blocks before the data and handshake packets that end a first transaction, allowing the second transaction to begin accessing the flash memory earlier. Data can be mirrored or striped across several USB flash storage blocks and parity can be added for error recovery.
-
Citations
19 Claims
-
1. A dual-mode Universal-Serial-Bus (USB) switch comprising:
-
a USB upstream interface to a host USB bus for connecting to a host; a plurality of USB downstream interfaces that connect to USB bus segments for connecting to a plurality of memory blocks; a virtual USB bridge for connecting the USB upstream interface to the plurality of USB downstream interfaces; and a transaction manager, coupled to control the virtual USB bridge to act as a USB hub by passing USB packets from the host to the plurality of memory blocks through the virtual USB bridge when operating in a hub mode, but for acting as a single USB endpoint to the host when operating in a single-endpoint mode; wherein the transaction manager passes data between the host and the memory blocks but intercepts and modifies packets from the host to generates secondary USB packets over the USB bus segments to the memory blocks when operating in the single-endpoint mode; wherein the transaction manager re-orders secondary packets to the memory blocks on the USB bus segments relative to a packet order of corresponding packets on the host USB bus to initiate overlapping accesses of two of the memory blocks; wherein the memory blocks and the USB bus segments are hidden from the host by the transaction manager when operating in the single-endpoint mode, but visible as USB endpoints to the host when operating in hub mode, whereby the dual-mode USB switch operates in modes having multiple endpoints or a single endpoint for multiple downstream memory blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A packet re-ordering USB switch comprising:
-
an upstream interface to a host USB bus that connects to a host; a transaction manager, coupled to the upstream interface, for sending and receiving USB packets to and from the host, the USB packets arranged in transactions having a token packet to initiate a transaction, a data packet when data is transferred, and a handshake packet to end the transaction; a first downstream interface to a first downstream bus to a first flash storage block; a second downstream interface to a second downstream bus to a second flash storage block; a third downstream interface to a third downstream bus to a third flash storage block; and an internal bus between the transaction manager, the first downstream interface, the second downstream interface, and the third downstream interface; wherein the transaction manager re-orders a second token packet from a second transaction to be sent to the first, second, or third flash storage block before the handshake packet of a first transaction that immediately precedes the second transaction when overlapping transactions, whereby the second token packet is re-ordered to overlap transactions to the first second, and third flash storage blocks. - View Dependent Claims (15, 16)
-
-
17. An aggregating serial-bus hub/switch comprising:
-
upstream interface means for connecting to a host bus to a host; a plurality of downstream interface means, connected to bus segments, for serially interfacing to a plurality of memory blocks; virtual bridge means for connecting the upstream interface means to the plurality of downstream interface means; and transaction manager means for controlling the virtual bridge means to act as a hub by passing packets from the host to the plurality of memory blocks through the virtual bridge means when operating in a hub mode, but for acting as a single endpoint to the host when operating in a single-endpoint mode; wherein the transaction manager means passes data between the host and the memory blocks but intercepts and modifies packets from the host to generates secondary packets over the bus segments to the memory blocks when operating in the single-endpoint mode; wherein the transaction manager means includes means for re-ordering the secondary packets to the memory blocks on the bus segments relative to a packet order of corresponding packets on the host bus to initiate overlapping accesses of two of the memory blocks; wherein the memory blocks and the bus segments are hidden from the host by the transaction manager means when operating in the single-endpoint mode, but visible as endpoints to the host when operating in hub mode, whereby the dual-mode switch operates in modes having multiple endpoints or a single endpoint for multiple downstream memory blocks. - View Dependent Claims (18, 19)
-
Specification