Patent ID: 7908421

Claim:
A method, comprising: at a universal serial bus host controller capable of exchanging information with n universal serial bus devices, each device supporting up to e potential endpoints, where n and e are integers greater than 1, such that the host controller supports a total of t potential universal serial bus endpoints, where t is n multiplied by e and thus an integer greater than 3, establishing x endpoint state machines, where x is an integer greater than 1 and less than t; maintaining, at the host controller, a two-dimensional endpoint scoreboard having n by e entries, wherein each entry includes both: (i) an indication of an endpoint type, and (ii) a pending work item indication; based on information in the two-dimensional endpoint scoreboard, assigning a first endpoint state machine at the host controller to a first potential endpoint having a pending work item; and before the host controller has completed the pending work item associated with the first potential endpoint, flushing by the host controller the first endpoint state machine and assigning the first endpoint state machine to a second potential endpoint.