Abstract:
A USB host controller is provided. The USB host controller includes an endpoint management unit, a transfer management unit, and a schedule management unit. The endpoint management unit manages endpoint configurations of a USB device, wherein the USB device includes a plurality of endpoints and the endpoint configurations include a plurality of statuses of the endpoints of the USB device. The transfer management unit transfers data regarding transfer information of the endpoints of the USB device between a system memory and the USB host controller. The schedule management unit simultaneously manages packet transfer of at least two endpoints of the USB device.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/652,555 filed May 29, 2012, the entirety of which is incorporated by reference herein. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The disclosure relates to a Universal Serial Bus (USB) host controller, and more particularly to a scheduling method of a USB host controller. 
         [0004]    2. Description of the Related Art 
         [0005]    Universal Serial Bus (USB) is a serial bus standard for connecting an external apparatus, which has the capability to provide a hot plug, plug-and-play, and so on. 
         [0006]    Currently, the USB 2.0 standard provides three transfer rates: low-speed, full-speed, and high-speed, which support data rates of 1.5 Mbps, 12 Mbps, and 480 Mbps, respectively. However, even faster transfer rates are being demanded for electronic apparatuses, due to increases in complex functions of the electronic apparatuses, so as to quickly access data from external apparatuses and subsequently perform related operations. 
         [0007]    Therefore, the USB Implementers Forum established the next-generation USB industry standard, USB 3.0, to provide SuperSpeed data transfer and non-SuperSpeed (i.e. USB 2.0) data transfer simultaneously, wherein SuperSpeed data transfer supports a 5 Gbps data rate. 
       BRIEF SUMMARY OF THE INVENTION 
       [0008]    A USB host controller and scheduling methods thereof are provided. An embodiment of a USB host controller is provided. The USB host controller comprises: an endpoint management unit, managing endpoint configurations of a USB device, wherein the USB device comprises a plurality of endpoints and the endpoint configurations comprise a plurality of statuses of the endpoints of the USB device; a transfer management unit, transferring data regarding transfer information of the endpoints of the USB device between a system memory and the USB host controller; and a schedule management unit, simultaneously managing packet transfer of at least two endpoints of the USB device. 
         [0009]    Furthermore, an embodiment of a scheduling method for a USB host controller is provided, wherein the USB host controller is coupled to a USB device comprising a plurality of endpoints. Packet transfer of the endpoints of the USB device is managed by a schedule management unit. The step of managing the packet transfer of each endpoint of the USB device comprises six stages: obtaining status of one of the endpoints of the USB device; obtaining transfer information of the one of the endpoints of the USB device; transmitting a packet to the one of the endpoints of the USB device; obtaining a response from the one of the endpoints of the USB device; updating the transfer information of the one of the endpoints of the USB device; and updating the status of the one of the endpoints of the USB device. At least two stages of the six stages are simultaneously performed for different endpoints of the USB device. 
         [0010]    Moreover, another embodiment of a scheduling method for a USB host controller, wherein the USB host controller is coupled to a USB device comprising a plurality of endpoints. Packet transfer of the endpoints of the USB device is managed by a schedule management unit. The step of managing the packet transfer of each endpoint of the USB device comprises six stages: obtaining status of the corresponding endpoint of the USB device; obtaining transfer information of the corresponding endpoint of the USB device; transmitting a packet to the corresponding endpoint of the USB device; obtaining a response from the corresponding endpoint of the USB device; updating the transfer information of the corresponding endpoint of the USB device; and updating the status of the corresponding endpoint of the USB device. At least two stages of the six stages are simultaneously performed for different packets of the corresponding endpoint of the USB device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    The invention will become more fully understood by referring to the following detailed description with reference to the accompanying drawings, wherein: 
           [0012]      FIG. 1  shows a conventional Universal Serial Bus (USB) host controller; 
           [0013]      FIG. 2  shows a schematic illustrating data transfer between the USB host controller and the endpoints EP 1  and EP 2  of the USB device of  FIG. 1 ; 
           [0014]      FIG. 3  shows a USB host controller according to an embodiment of the invention; 
           [0015]      FIG. 4  shows a USB host controller according to an embodiment of the invention; 
           [0016]      FIGS. 5A and 5B  show a flowchart illustrating a scheduling method for the USB host controller of  FIG. 4  according to an embodiment of the invention; 
           [0017]      FIG. 6  shows a schematic illustrating data transfer between the USB host controller and the USB device of  FIG. 4  according to the scheduling method of  FIGS. 5A and 5B ; 
           [0018]      FIG. 7  shows a flowchart illustrating a scheduling method for the USB host controller of  FIG. 4  according to another embodiment of the invention; and 
           [0019]      FIGS. 8A and 8B  show a schematic illustrating data transfer between the USB host controller and the USB device of  FIG. 4  according to the scheduling method of  FIG. 7 . 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
         [0021]      FIG. 1  shows a conventional Universal Serial Bus (USB) host controller  100 . The USB host controller  100  comprises an endpoint management unit  110 , a transfer management unit  120  and a schedule management unit  130 . The USB host controller  100  is coupled to a system memory  20  via an Extensible Host Controller Interface (xHCI) bus  40 . Furthermore, the USB host controller  100  is coupled to a USB device  10  via a USB connection, wherein the USB device  10  comprises a plurality of endpoints EP 1 , EP 2 , EP 3 , EP 4  and EPS, wherein each endpoint is a uniquely addressable portion of the USB device  10  that is the source or destination of information in a communication flow between the USB host controller  100  and the USB device  10 . In the USB host controller  100 , path A represents that the schedule management unit 130 obtains the status (e.g. 16-byte endpoint content) of an endpoint of the USB device  10  from the endpoint management unit  110  when the endpoint is activated. Next, path B represents that the schedule management unit  130  obtains transfer information (e.g. 16-byte queue descriptor and 1024-byte data content) corresponding to the endpoint from the transfer management unit  120 . When the USB host controller  100  performs an OUT operation to store data to the USB device  10 , path C represents that the schedule management unit  130  provides a packet (e.g. Data Packet Header (DPH) and Data Packet Payload (DPP)) corresponding to the transfer information and the packets corresponding to the data to be stored, to the USB device  10 . Furthermore, when the USB host controller  100  performs the OUT operation, path D represents that the schedule management unit  130  obtains a response from the USB device  10 , wherein the USB device  10  provides the response according to each packet from the USB host controller  100 . On the other hand, when the USB host controller  100  performs an IN operation to read data stored in the USB device  10 , path C represents that the schedule management unit  130  provides a packet (e.g. Data Packet Header (DPH) and Data Packet Payload (DPP)) corresponding to the transfer information to the USB device  10 . Furthermore, when the USB host controller  100  performs the IN operation, path D represents that the schedule management unit  130  obtains a response and the packets corresponding to the stored data from the USB device  10 , wherein the USB device  10  provides the response according to the packet from the USB host controller  100 . Next, path E represents that the schedule management unit  130  updates the transfer information to the transfer management unit  120  according to the response from the USB device  10 . Next, path F represents that the schedule management unit  130  updates the status of the endpoint of the USB device  10  to the endpoint management unit  110  in response to the updated transfer information. 
         [0022]      FIG. 2  shows a schematic illustrating data transfer between the USB host controller  100  and the endpoints EP 1  and EP 2  of the USB device  10  of  FIG. 1 . Referring to  FIG. 1  and  FIG. 2  together, in time period T 1 , a procedure of the endpoint EP 1  of the USB device  10  is activated, and the schedule management unit  130  obtains the status of the endpoint EP 1  of the USB device  10  from the endpoint management unit  110  via the path A, and then obtains transfer information corresponding to the endpoint EP 1  from the transfer management unit  120  via the path B. Next, in time period T 2 , the schedule management unit  130  of the USB host device  100  provides a packet EP 1 _PKT to the endpoint EP 1  of the USB device  10  via the path C, and then the endpoint EP 1  of the USB device  10  provides a response EP 1 _RESP to the schedule management unit  130  of the USB host device  100  via the path D. Next, in time period T 3 , the schedule management unit  130  updates the transfer information corresponding to the endpoint EP 1  to the transfer management unit  120  according to the response EP 1 _RESP via the path E, and then the schedule management unit  130  updates the status of the endpoint EP 1  of the USB device  10  to the endpoint management unit  110  via the path F. Thus, the procedure of the endpoint EP 1  of the USB device  10  is completed. Next, in time period T 4 , a procedure of the endpoint EP 2  of the USB device  10  is activated, the schedule management unit  130  obtains the status of the endpoint EP 2  of the USB device  10  from the endpoint management unit  110  via the path A, and then obtains transfer information corresponding to the endpoint EP 2  from the transfer management unit  120  via the path B. Next, in time period T 5 , the schedule management unit  130  of the USB host device  100  provides a packet EP 2 _PKT to the endpoint EP 2  of the USB device  10  via the path C, and then the endpoint EP 2  of the USB device  10  provides a response EP 2 _RESP to the schedule management unit  130  of the USB host device  100  via the path D. Next, in time period T 6 , the schedule management unit  130  updates the transfer information corresponding to the endpoint EP 2  to the transfer management unit  120  according to the response EP 2 _RESP via the path E, and then the schedule management unit  130  updates the status of the endpoint EP 2  of the USB device  10  to the endpoint management unit  110  via the path F. Thus, the procedure of the endpoint EP 2  of the USB device  10  is completed. In  FIG. 2 , the procedures of the endpoints EP 1  and EP 2  are performed in sequence; thereby a large latency may exist between the procedures of the endpoints EP 1  and EP 2 . 
         [0023]      FIG. 3  shows a USB host controller  200  according to an embodiment of the invention. The USB host controller  200  comprises an endpoint management unit  210 , a transfer management unit  220  and a schedule management unit  230 . The endpoint management unit  210  is used to manage endpoint configurations of the USB device  10 , wherein the endpoint configurations comprise a plurality of statuses of the endpoints EP 1 -EP 5  of the USB device  10 . The transfer management unit  220  is used to transfer data regarding transfer information of the endpoints EP 1 -EP 5  of the USB device  10  between the system memory  20  and the USB host controller  200 . In the USB device  10 , each of the endpoints EP 1 -EP 5  may perform individual operations. For example, an OUT operation is performed for the endpoint EP 1 , and an IN operation is performed for the endpoint EP 2 . The schedule management unit  230  comprises a plurality stage processing units  240 _ 1 - 240   —   n  for performing the procedures of the endpoints EP 1 -EP 5  of the USB device  10  in parallel, wherein each of the stage processing units  240 _ 1 - 240   —   n  is used to manage the operations of at least one of the paths A, B, C, D, E and F for the endpoints EP 1 -EP 5  of the USB device  10 . 
         [0024]      FIG. 4  shows a USB host controller  300  according to an embodiment of the invention. The USB host controller  300  comprises an endpoint management unit  310 , a transfer management unit  320 , and a schedule management unit  330 , wherein the schedule management unit  330  comprises six stage processing units  340 _ 1  to  340 _ 6  for managing the operations of the paths A, B, C, D, E and F, respectively.  FIGS. 5A and 5B  show a flowchart illustrating a scheduling method for the USB host controller  300  of  FIG. 4  according to an embodiment of the invention. According to the scheduling method, the scheduling flow of the schedule management unit  330  can be divided into several sub-procedures, and the stage processing units  340 _ 1  to  340 _ 6  of the schedule management unit  330  are responsible to handle each sub-procedure in the pipeline. Referring to  FIGS. 4 and 5 , first, in step S 502 , a procedure of the endpoint EP 1  is activated and the stage processing unit  340 _ 1  obtains the status (e.g. 16-byte endpoint content) of the endpoint EP 1  of the USB device  10  from the endpoint management unit  310 . Next, in step S 504 , the stage processing unit  340 _ 2  obtains transfer information (e.g. 16-byte queue descriptor and 1024-byte data content) of the endpoint EP 1  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 1 . Next, in step S 506 , the stage processing unit  340 _ 3  transmits a packet EP 1 _PKT to the endpoint EP 1  of the USB device  10  according to the transfer information of the endpoint EP 1 . Next, in step S 508 , the stage processing unit  340 _ 4  obtains a response EP 1 _RESP from the endpoint EP 1  of the USB device  10 , wherein the endpoint EP 1  of the USB device  10  provides the response EP 1  RESP to the schedule management unit  340 _ 4  according to the received packet EP 1 _PKT. Next, in step S 510 , the stage processing unit  340 _ 5  updates the transfer information of the endpoint EP 1  of the USB device to the transfer management unit  320  according to the response EP 1 _RESP from the USB device  10 . Next, in step S 512 , the stage processing unit  340 _ 6  updates the status of the endpoint EP 1  of the USB device to the endpoint management unit  310  in response to the updated transfer information. Thus, the procedure of the endpoint EP 1  is completed. Furthermore, when a procedure of the endpoint EP 2  is activated, the stage processing unit  340 _ 1  obtains the status of the endpoint EP 2  of the USB device  10  from the endpoint management unit  310  (step S 522 ). In the embodiment, the procedure of the endpoint EP 2  is activated when the packet EP 1 _PKT is transmitted to the endpoint EP 1  of the USB device  10  (step S 506 ). It is to be noted that, the procedure of the endpoint EP 2  activated in step S 506  is used as an example, and the procedure of the endpoint EP 2  can be activated at any time that after the procedure of the endpoint EP 1  has be activated (i.e. step S 502 ), as shown in dotted lines. In the schedule management unit  330 , the stage processing unit  340 _ 1  is capable of processing the obtained status of the endpoint EP 2  after step S 502 , thereby the procedures of the various endpoints can be performed in pipelining. Furthermore, in step S 524 , the stage processing unit  340 _ 2  obtains the transfer information of the endpoint EP 2  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 2 . Next, in step S 526 , the stage processing unit  340 _ 3  transmits a packet EP 2 _PKT to the endpoint EP 2  of the USB device  10  according to the transfer information of the endpoint EP 2 . Next, in step S 528 , the stage processing unit  340 _ 4  obtains a response EP 2 _RESP from the endpoint EP 2  of the USB device  10  in response to the packet EP 2 _PKT. Next, in step S 530 , the stage processing unit  340 _ 5  updates the transfer information of the endpoint EP 2  of the USB device to the transfer management unit  320  according to the response EP 2 _RESP from the USB device  10 . Next, in step S 532 , the stage processing unit  340 _ 6  updates the status of the endpoint EP 2  of the USB device to the endpoint management unit  310  in response to the updated transfer information. Thus, the procedure of the endpoint EP 2  is completed. Similarly, when a procedure of the endpoint EP 3  is activated, the stage processing unit  340 _ 1  obtains the status of the endpoint EP 3  of the USB device  10  from the endpoint management unit  310  (step S 542 ). In the embodiment, the procedure of the endpoint EP 3  is activated when the transfer information of the endpoint EP 2  is obtained (step S 524 ). It is to be noted that, the procedure of the endpoint EP 3  activated in step S 524  is used as an example, and the procedure of the endpoint EP 3  can be activated at any time that after the procedure of the endpoint EP 2  has be activated (i.e. step S 522 ), as shown in dotted lines. In the schedule management unit  330 , the stage processing unit  340 _ 1  is capable of processing the obtained status of the endpoint EP 3  after step S 522 , thereby the procedures of various endpoints can be performed in pipelining. Furthermore, in step S 544 , the stage processing unit  340 _ 2  obtains transfer information of the endpoint EP 3  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 3 . Next, in step S 546 , the stage processing unit  340 _ 3  transmits a packet EP 3 _PKT to the endpoint EP 3  of the USB device  10  according to the transfer information of the endpoint EP 3 , and a procedure of the next endpoint is activated, and so on. Therefore, by using the stage processing units  340 _ 1  to  340 _ 6 , the schedule management unit  330  may perform various procedures of the endpoints EP 1 -EP 5  of the USB device  10  simultaneously. It is to be noted that the schedule management unit  330  comprising six stage processing units  340 _ 1 - 340 _ 6  is used as an example, and does not limit the invention. 
         [0025]      FIG. 6  shows a schematic illustrating data transfer between the USB host controller  300  and the USB device  10  of  FIG. 4  according to the scheduling method of  FIGS. 5A and 5B . In  FIG. 6 , the USB host controller  300  and the USB device  10  establish a USB  3 . 0  communication, wherein the USB host controller  300  transmits the packets to the USB device  10  via a pair of transmitter differential signals SSTX+/SSTX−, and the USB host controller  300  receives the responses from the USB device  10  via a pair of receiver differential signals SSRX+/SSRX−. Referring to  FIGS. 5A and 5B  and  FIG. 6  together, in time period P 1 , the procedure of the endpoint EP 1  of the USB device  10  is activated, and step S 502  and step S 504  are performed. In time period P 2 , step S 506  is performed to provide the packet EP 1 _PKT from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 1 _RESP to the USB host device  300  (step S 508 ). After the packet EP 1 _PKT is transmitted to the USB device  10 , step S 522  and step S 524  are performed for the endpoint EP 2  of the USB device  10  in time period P 3 . After the response EP 1 _RESP is received, step S 510  and step S 512  are performed for the endpoint EP 1  in time period P 4 . In time period P 5 , step S 526  is performed to provide the packet EP 2 _PKT from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 2 _RESP to the USB host device  300  (step S 528 ). After the packet EP 2 _PKT is transmitted to the USB device  10 , step S 542  and step S 544  are performed for the endpoint EP 3  of the USB device  10  in time period P 6 . After the response EP 2 _RESP is received, step S 530  and step S 532  are performed for the endpoint EP 2  in time period P 7 . In time period P 8 , step S 546  is performed to provide the packet EP 3 _PKT from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 3 _RESP to the USB host device  300 . Therefore, various procedures of the endpoints EP 1 , EP 2  and EP 3  are handled in the schedule management unit  330  at the same time. Compared with the conventional data transfer of  FIG. 2 , the latency between the procedures of the various endpoints is decreased in  FIG. 6 , and the USB bus bandwidth between the USB device  10  and the USB host controller  300  can be utilized more efficiently. Similarly, the scheduling method of  FIGS. 5A and 5B  can be used in a USB 2.0 communication, wherein a USB host controller and a USB device transmits the packets and responses via a pair of differential signals D+/D−. 
         [0026]      FIG. 7  shows a flowchart illustrating a scheduling method for the USB host controller  300  of  FIG. 4  according to another embodiment of the invention. Referring to  FIGS. 4 and 7 , first, in step S 702 , a procedure of the endpoint EP 1  is activated and the stage processing unit  340 _ 1  obtains the status (e.g. 16-byte endpoint content) of the endpoint EP 1  of the USB device  10  from the endpoint management unit  310 . Next, in step S 704 , the stage processing unit  340 _ 2  obtains transfer information (e.g. 16-byte queue descriptor and 1024-byte data content) of the endpoint EP 1  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 1 . Next, in step S 706 , the stage processing unit  340 _ 3  transmits a packet EP 1 _PKT 1  to the endpoint EP 1  of the USB device  10  according to the transfer information of the endpoint EP 1  obtained in step S 704 , and the next procedure of the endpoint EP 1  is activated. It is to be noted that, the next procedure of the endpoint EP 1  activated in step S 706  is used as an example, and the next procedure of the endpoint EP 1  can be activated at any time that after the transfer information of the current procedure of the endpoint EP 1  is obtained by the stage processing unit  340 _ 2  (i.e. step S 704 ), as shown in dotted lines. In the schedule management unit  330 , the stage processing unit  340 _ 2  is capable of processing the obtained transfer information of the next procedure of the endpoint EP 2  after step S 704 , thereby various procedures of the endpoint EP 1  can be performed in pipelining. Next, in step S 708 , the stage processing unit  340 _ 4  obtains a response EP 1 _RESP 1  from the endpoint EP 1  of the USB device  10 , wherein the endpoint EP 1  of the USB device  10  provides the response EP 1  RESP 1  to the schedule management unit  340 _ 4  according to the received packet EP 1 _PKT 1 . Next, in step S 710 , the stage processing unit  340 _ 5  updates the transfer information of the endpoint EP 1  of the USB device to the transfer management unit  320  according to the response EP 1  RESP 1  from the USB device  10 . Thus, the first procedure of the endpoint EP 1  is completed. Furthermore, when the next procedure of the endpoint EP 1  is activated, the stage processing unit  340 _ 2  obtains the transfer information of the endpoint EP 1  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 1  (step S 724 ). Next, in step S 726 , the stage processing unit  340 _ 3  transmits a packet EP 1 _PKT 2  to the endpoint EP 1  of the USB device  10  according to the transfer information of the endpoint EP 1  obtained in step S 724 , and the last procedure of the endpoint EP 1  is activated. As described above, the last procedure of the endpoint EP 1  can be activated at any time that after step S 724 , thereby various procedures of the endpoint EP 1  can be performed in pipelining. Next, in step S 728 , the stage processing unit  340 _ 4  obtains a response EP 1 _RESP 2  from the endpoint EP 1  of the USB device  10  in response to the packet EP 1 _PKT 2 . Next, in step S 730 , the stage processing unit  340 _ 5  updates the transfer information of the endpoint EP 1  of the USB device to the transfer management unit  320  according to the response EP 1 _RESP 2  from the USB device  10 . Thus, the next procedure of the endpoint EP 1  is completed. Moreover, when the last procedure of the endpoint EP 1  is activated, the stage processing unit  340 _ 2  obtains the transfer information of the endpoint EP 1  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 1  and a procedure of the endpoint EP 2  is activated (step S 744 ). Next, in step S 746 , the stage processing unit  340 _ 3  transmits a packet EP 1 _PKT 3  to the endpoint EP 1  of the USB device  10  according to the transfer information of the endpoint EP 1  obtained in step S 744 . Next, in step S 748 , the stage processing unit  340 _ 4  obtains a response EP 1 _RESP 3  from the endpoint EP 1  of the USB device  10 , wherein the endpoint EP 1  of the USB device  10  provides the response EP 1 _RESP 3  to the schedule management unit  340 _ 4  according to the received packet EP 1 _PKT 3 . Next, in step S 750 , the stage processing unit  340 _ 5  updates the transfer information of the endpoint EP 1  of the USB device to the transfer management unit  320  according to the response EP 1 _RESP 3  from the USB device  10 . Next, in step S 752 , the stage processing unit  340 _ 6  updates the status of the endpoint EP 1  of the USB device to the endpoint management unit  310  in response to the transfer information updated in step S 750 . Thus, the last procedure of the endpoint EP 1  is completed. Furthermore, when the procedure of the endpoint EP 2  is activated, the stage processing unit  340 _ 1  obtains the status of the endpoint EP 2  of the USB device  10  from the endpoint management unit  310  (step S 762 ). Next, in step S 764 , the stage processing unit  340 _ 2  obtains the transfer information of the endpoint EP 2  of the USB device  10  from the transfer management unit  320  in response to the status of the endpoint EP 2 . Next, in step S 766 , the stage processing unit  340 _ 3  transmits a packet EP 2 _PKT to the endpoint EP 2  of the USB device  10  according to the transfer information of the endpoint EP 2 , and a procedure of the next endpoint may be activated. Next, in step S 768 , the stage processing unit  340 _ 4  obtains a response EP 2 _RESP from the endpoint EP 2  of the USB device  10  in response to the packet EP 2 _PKT, and so on. Therefore, by using the stage processing units  340 _ 1  to  340 _ 6 , the schedule management unit  330  may perform various procedures of an endpoint with multiple packets and various endpoints of the USB device  10  simultaneously. 
         [0027]      FIGS. 8A and 8B  show a schematic diagram illustrating data transfer between the USB host controller  300  and the USB device  10  of  FIG. 4  according to the scheduling method of  FIG. 7 . In  FIGS. 8A and 8B , the USB host controller  300  and the USB device  10  establish a USB 3.0 communication, wherein the USB host controller  300  transmits the packets to the USB device  10  via a pair of transmitter differential signals SSTX+/SSTX−, and the USB host controller  300  receives the responses from the USB device  10  via a pair of receiver differential signals SSRX+/SSRX−. Referring to  FIG. 7  and  FIG. 8A  together, in time period S 1 , the procedure of the endpoint EP 1  of the USB device  10  is activated, and step S 702  and step S 704  are performed. In time period S 2 , step S 706  is performed to provide the packet EP 1 _PKT 1  from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 1 _RESP 1  to the USB host device  300  (step S 708 ). After the response EP 1 _RESP 1  is received, step S 710  is performed for the endpoint EP 1  in time period S 6 . When the packet EP 1 _PKT 1  is transmitted to the USB device  10 , step S 724  is performed for the endpoint EP 1  of the USB device  10  in time period S 3 . In time period S 4 , step S 726  is performed to provide the packet EP 1 _PKT 2  from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 1 _RESP 2  to the USB host device  300  (step S 728 ). In  FIG. 8B , after the response EP 1 _RESP 2  is received, step S 730  is performed for the endpoint EP 1  in time period S 9 . In time period S 5 , step S 744  is performed. In time period S 7 , step S 746  is performed to provide the packet EP 1 _PKT 3  from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 1 _RESP 3  to the USB host device  300  (step S 748 ). After the response EP 1 _RESP 3  is received, step S 750  and step S 752  are performed for the endpoint EP 1  in time period S 10 . After the packet EP 1 _PKT 3  is transmitted to the USB device  10 , step S 762  and step S 764  are performed for the endpoint EP 2  of the USB device  10  in time period S 8 . In time period S 11 , step S 766  is performed to provide the packet EP 2 _PKT from the USB host controller  300  to the USB device  10 , and then the USB device  10  provides the response EP 2 _RESP to the USB host device  300  (step S 768 ). Therefore, various packets of the endpoint EP 1  and various procedures of the endpoints EP 1  and EP 2  are handled in the schedule management unit  330  at the same time. Similarly, the scheduling method of  FIGS. 5A and 5B  can be used in a USB 2.0 communication, wherein a USB host controller and a USB device transmits the packets and responses via a pair of differential signals D+/D−. 
         [0028]    While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.