Patent ID: 7987302

Claim:
A Universal Serial Bus (USB) system for transferring (i) first USB data packets via a first USB link to a first USB endpoint and (ii) second USB data packets via a second USB link to a second USB endpoint, wherein: the USB system: assigns a first priority level to the first USB endpoint; and assigns a second priority level to the second USB endpoint, wherein the second priority level is lower than the first priority level; and the USB system comprises: memory that stores the first USB data packets corresponding to the first priority level and the second USB data packets corresponding to the second priority level; and a controller that manages transfers of the first USB data packets to the first USB endpoint and the second USB data packets to the second USB endpoint, wherein, if the memory concurrently stores at least one first USB data packet and at least one second USB data packet, then the controller determines an order for transferring the at least one first USB data packet and the at least one second USB data packet based on the second priority level being lower than the first priority level, wherein: the controller further determines the order for transferring the at least one first USB data packet and the at least one second USB data packet based on a detection of a data starvation condition for the second endpoint; and if the data starvation condition is detected, then the controller determines to transfer the at least one second USB data packet before transferring the at least one first USB data packet even though the second priority level is lower than the first priority level.