WO2009150613A1 - Wireless universal serial bus micro-schedule management command scheduling method - Google Patents

Wireless universal serial bus micro-schedule management command scheduling method Download PDF

Info

Publication number
WO2009150613A1
WO2009150613A1 PCT/IB2009/052450 IB2009052450W WO2009150613A1 WO 2009150613 A1 WO2009150613 A1 WO 2009150613A1 IB 2009052450 W IB2009052450 W IB 2009052450W WO 2009150613 A1 WO2009150613 A1 WO 2009150613A1
Authority
WO
WIPO (PCT)
Prior art keywords
packets
queue
scheduled
priority
time
Prior art date
Application number
PCT/IB2009/052450
Other languages
French (fr)
Inventor
Shankar B. Dattatreya
Sushil Kr
Original Assignee
Nxp B.V.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nxp B.V. filed Critical Nxp B.V.
Publication of WO2009150613A1 publication Critical patent/WO2009150613A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control

Definitions

  • the present application relates to a method and an apparatus for scheduling time slots of a transaction group for wireless universal serial bus transaction.
  • the present application relates also to a computer and to a computer readable medium for providing said method.
  • WiMedia® (hereafter WiMedia) is an industry special group promoting ultra wideband (UWB) radio technology standardization. This wireless technology can be applied to USB to free the user from worrying about cables.
  • wireless USB defines a wireless USB channel which is encapsulated within a set of media access control (MAC) layer super frames. Such a super frame can be divided into media access time slots (MAS), which can be reserved for a wireless USB channel.
  • MAC media access control
  • MAS media access time slots
  • the wireless USB channel is a continuous of linked application specific control packets, which are called micro scheduled management commands (MMCs).
  • MMC micro scheduled management commands
  • the MMC is used for scheduling channel time for data communication between host applications and wireless USB endpoints.
  • the MMC is employed for scheduling the allocated protocol time slots during which one or more wireless USB transactions are conducted.
  • wireless USB scheduling methods known in prior art comprise the drawback that these methods comprises a higher error rate than other interfaces, such as wired USB.
  • a wireless USB hardware scheduling method is known wherein periodic transfers are performed before asynchronous transfer. When failures are occurring, the respective endpoint is paused depending on software-configurable thresholds.
  • this method comprises the disadvantage that important data might not be transferred between two entities since the time for retries is limited.
  • the method comprises establishing a first priority for a first kind of packets and establishing at least a second priority for at least a second kind of packets, wherein the first priority is set higher than the second priority.
  • the method comprises providing a first queue for packets to be scheduled of the first kind of packets and providing at least a second queue for packets to be scheduled of the second kind of packets.
  • the method comprises scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets existent in the second queue are not scheduled for the transaction group.
  • the method can be used for data communication between different entities in wireless USB.
  • a transaction group comprises a particular time interval, this transaction group time being reserved for communication between at least two entities, like a host application and one or more devices.
  • at least two different priorities are established for at least two different kinds of packets.
  • a packet can be also called as a frame. It shall be understood that, according to further variants of the present application, the same priority can be established to more than one kind of packets as well as different priorities can be established to each possible kind of packet. The selection, which priority is established for which kind of packets can be performed according to user whishes, system requirements or the like.
  • the highest priority can be established for the most important kind of packets
  • the less priority like the second priority
  • Packets can be stored in queues. It is found that using different queues for packets having different priorities increases the efficiency of scheduling. According to the present application at least two queues are provided, each for packets having different priorities. Contrary to expectation it is found according to the present application that the error rate can be reduced while maintaining a high data transfer rate by scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets existent in the second queue are not scheduled for the transaction group.
  • the available time for data transfer is reserved for the packets having the first priority, for instance the highest priority. Further packets ,,to be scheduled" having less priority can be scheduled after the first queue is empty at the time point of scheduling the respective transaction group. If a packet having the first priority should be scheduled it can be provided with sufficient time for retries. Further bandwidth is not consumed by further packets with less priority.
  • the present method provides for optimized scheduling in wireless USB with optimally formed MMCs. Transmitting errors are reduced and at the same time the data transfer rate is high.
  • At least one queue can be formed as a circular queue.
  • a circular queue or also called list can be provided for ensuring equal treatment of packets having the same priority. More particularly, the order of scheduling the packets having the same priority may depend on the order of receiving transaction requests. It shall be understood that besides circular queues other structures can be used for ensuring equal treatment of packets having same priority.
  • the packets may comprise a predefined queue element structure.
  • a queue element structure may comprise a wireless USB header and buffers.
  • a queue element structure can be defined which is suitable for WiMedia media access control (MAC).
  • MAC WiMedia media access control
  • scheduling a packet may comprise appending the queue element structure of the packet to be scheduled from the first or second queue into a ,,to be scheduled" queue.
  • scheduling a packet may comprise fitting the queue element structure of the packet to be scheduled from the ,,to be scheduled" queue into the scheduled queue. Two queues, the scheduled queue and the scheduled queue are maintained during scheduling.
  • the ,,to be scheduled" queue may be used to hold queue element structures which are already scheduled for transfer and the other can be used to hold temporarily queue element structures till all other queue element structures are queued. Afterwards, these queue element structures could be queued to the scheduled queue. Scheduling can be done efficiently and with a reduced error rate.
  • At least a third priority can be established for at least a third kind of packets, wherein the third priority can be set higher than the second priority and less than the first priority.
  • the packets having the third priority may not be scheduled in case a packet having the first priority is existent in the first queue.
  • the packets having the third priority may be scheduled before the packets of the second priority category.
  • the second kind of packets may be also scheduled within a transaction group in case packets of the third priority are already scheduled within the same transaction group. A particular and desired order of scheduling packets can be maintained without limiting the transfer rate.
  • One kind of packets to be scheduled may be an interrupt endpoint, device notification time slot (DNTS) packet, control endpoint, bulk endpoint and/or isochronous endpoint.
  • DNTS device notification time slot
  • an MMC packet is used for scheduling channel time for data communication between host application and wireless USB endpoints. More particularly, the MMC is used for advising the one or more devices when and which packets, like interrupt endpoints, device notification time slot (DNTS) packets, control endpoints, bulk endpoints and/or isochronous endpoints, are performed during the respective transaction group time. All possible packets to be scheduled can be taken into account.
  • DNTS device notification time slot
  • the method of the present application further comprises that at least one end point structure can be maintained for a micro-scheduled management command packet and/or device notification time slot packet.
  • at least one end point structure can be maintained for a micro-scheduled management command packet and/or device notification time slot packet.
  • dummy endpoint structures similar to the endpoint structures of the actual endpoints can be maintained for MMCs and DNTS packets resulting in similar structures of all packets to be scheduled. Scheduling can be performed without the need to handle different structures.
  • the method of the present application may comprise determining available transaction group time depending at least on a predefined fixed transaction group time and/or minimum available service interval time. Before scheduling time slots of a transaction group time, it is required to determine the available transaction group time. It may be advantageous to define a fixed transaction group time for obtaining periodic and continuous communication between host applications and wireless USB endpoints. For enabling the use of available time intervals which are smaller than the fixed transaction group time, in particular, in case the minimum available service interval time is smaller than the predefined fixed transaction group time, the actual transaction group time can be set to the minimum available service interval time. The available time can be optimally used while a periodic and continuous communication can be provided for.
  • the MMC packet can be scheduled according to an embodiment of the present application.
  • it can be checked whether a failure is occurred during scheduling the MMC.
  • it can be asserted in case of an error.
  • the error rate can be reduced.
  • the first priority can be established for the interrupt endpoints.
  • Interrupt endpoints belongs to the so called periodic transfer. Furthermore, interrupt endpoints are error prone for which reason in case of an erroneous transaction retries are provided. It is found according to the present application that the error rate in wireless USB can be significantly reduced, when at least one interrupt endpoint to be scheduled is existent, no other kinds of packets are scheduled within the respective transaction group. More particularly, further packets, such as DNTS packets, bulk endpoints or control endpoints are not scheduled. The time needed for possibly required retries cannot be consumed by other packets.
  • the third priority can be established for the device notification time slots according to another embodiment of the present application.
  • the third priority may be between the first and second priority.
  • DNTS can be scheduled previous to other packets. It shall be understood that a DNTS packet is merely scheduled as per the DNTS service interval.
  • control endpoints and/or bulk endpoints can be scheduled afterwards.
  • the second priority can be established for the control endpoints and/or bulk endpoints. It can be ensured that burst data transfer is merely scheduled if sufficient wireless USB channel time is available.
  • control endpoints and/or bulk endpoints can be stored in a queue, like a circular list. It is noted that in case no endpoints are existent in one of the queues only MMC packets and DNTS packets as per DNTS service interval time can be scheduled.
  • the method according to the present application may comprise updating the wireless universal serial bus time.
  • a wireless USB channel time counter a 24 bit counter having a resolution in terms of micro seconds can be used according to an embodiment of the application.
  • the most significant byte may represent a super frame counter.
  • the least significant two bytes may represent an offset in micro second resolution within a super frame.
  • this counter may be advanced when wireless USB packets are scheduled (including MMC frames).
  • the present wireless USB channel time counter may provide for scheduling a next MMC precisely at the time mentioned in the current MMC packet with an accuracy of at least +/- 60 ns, preferably +/- 40 ns.
  • a further aspect of the present application is a computer readable medium having a computer program stored thereon, the computer program comprising instructions operable to cause a processor to perform a previous stated method.
  • a further aspect of the present application is an apparatus, comprising establishing means for establishing a first priority for a first kind of packets and for establishing at least a second priority for at least a second kind of packets, wherein the first priority is set higher than the second priority, storing means for providing a first queue for packets to be scheduled of the first kind of packets and for providing at least a second queue for packets to be scheduled of the second kind of packets, and scheduling means for scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets of the second queue are not scheduled within the transaction group.
  • the computer may be a host computer which can communicate to at least one further device.
  • Fig. 1 an embodiment of the system according to the present application
  • Fig. 2 an embodiment of the structures maintained within the scheduling means according to the present application
  • FIG. 3 an exemplified diagram of the wireless USB and WiMedia MAS reservation according to the present application
  • Fig. 4 a first flowchart of the method according to the present application
  • FIG. 5 a second flowchart of the method according to the present application
  • Fig. 6 a third flowchart of the method according to the present application
  • Fig. 7 a fourth flowchart of the method according to the present application.
  • Fig. 8 a fifth flowchart of the method according to the present application.
  • Fig. 9 a sixth flowchart of the method according to the present application.
  • Fig. 1 shows a simplified embodiment of the system according to the present application.
  • the present system 2 can be realized by hardware and/or software modules and comprises scheduling means 4 according to the present application.
  • This wireless USB scheduling means 4 may comprise establishing means 5 for establishing a certain priority for a particular kind of packets, like establishing the first priority for interrupt endpoints and the second priority for control and bulk endpoints.
  • Other provisions are also possible as well as further priority provisions can be performed by the establishing means 5.
  • the scheduling means 4 can communicate bidirectional with a wireless USB driver 18 and a generic hardware abstraction layer 10 (HAL), wherein the HAL 10 allows instructions from higher level computer languages to communicate with lower level components, such as directly with hardware.
  • HAL 10 is arranged between the WiMedia media access control (MAC) or wireless USB hardware 6, wherein this module 6 may be a hardware module, and the scheduling means 4 and WiMedia MAC management control module 16.
  • MAC WiMedia media access control
  • wireless USB hardware 6 wherein this module 6 may be a hardware module
  • the scheduling means 4 and WiMedia MAC management control module 16 In turn, the WiMedia MAC or wireless USB hardware 6 can be connected to the WiMedia physical layer (PHY) 8, wherein PHY 8 acts as an interface.
  • PHY 8 can be preferably implemented as a hardware module.
  • storing means such as a memory management module 14, a USB host stack 20 and an operation system abstraction layer (OSAL) 12 are arranged.
  • these modules 12, 14 and 20 can be implemented as software modules.
  • the scheduling means 4 can be used by the wireless USB host to schedule MMC packets as required by wireless USB specification.
  • the output of wireless USB host can be mapped USB driver 18 so that all existing USB stack can be used with very minimal change.
  • the scheduling means 4 according to the present application will interact with WiMedia MAC hardware 6 to transfer wireless USB packets, such as MMC packets, DNTS packets and the like.
  • Fig. 2 shows a simplified embodiment of the structures maintained within the scheduling means according to the present application.
  • a distributed reservation protocol (DRP) reservation structure 22 for wireless USB is depicted in Fig. 2.
  • the reservation structure 22 may serve to ensure that scheduling is performed merely within the reserved time slots.
  • endpoint structures 25 and 26 are shown.
  • Each of these structures 25 and 26 comprise a queue element structure (sQH) 27 required by WiMedia MAC, a wireless USB header 28 and buffers 30.
  • SQL queue element structure
  • Both queues 38 and 40 may be fairness queues, such as circular queues, for an equal treatment of packets having same priority.
  • interrupt endpoints 32 can be stored while in the second queue 40, control endpoints 34 and bulk endpoints 36 can be stored.
  • the control endpoints 34 and bulk endpoints 36 may comprise the same priority, which may be different, in particular, less compared to the priority of the interrupt endpoints.
  • the priority order of the depicted wireless USB packets may be MMC, interrupt endpoints, DNTS and control/bulk endpoints. More particularly, any transaction group starts with an MMC packet.
  • Two further queues 23 and 24 are shown in Fig. 2.
  • One queue 23 represents the scheduled queue 23 and the other queue 24 the ,,to be scheduled" queue 24. These queues 23 and 24 are maintained by the scheduling means 4 during scheduling.
  • the one queue 23 can be used to hold a sQH which is already scheduled for transfer and the other queue 24 can be used to hold temporarily sQHs until all out sQHs are queued. Then these sQHs can be queued to the scheduled queue 23.
  • Reference sign 21 indicates the wireless USB channel time counter 21.
  • a 24 bit counter having a resolution in terms of micro seconds can be used according to an embodiment of the present application.
  • the most significant byte may represent a super frame counter.
  • the least significant two bytes may represent an offset in micro second within a super frame.
  • this counter may be advanced as and when wireless USB packets are scheduled (including MMC frames).
  • the present wireless USB channel time counter 21 may provide for scheduling a next MMC precisely at the time mentioned in the current MMC packet with an accuracy of at least +/- 60 ns, preferably +/-
  • FIG. 3 shows an exemplified diagram of the wireless USB
  • WiMedia media access slots (MAS) reservation according to the present application.
  • the reference sign 42 indicates the start of a WiMedia super frame.
  • Wireless USB defines a wireless USB channel 44 which is encapsulated within MAC layer super frames 48.
  • a super frame 48 can be defined as the periodic time interval used in the MAC layer to coordinate packet transmissions between devices.
  • the time interval consisting of the difference between the traversed offset and the two LSB of the wireless USB channel timer 21 is indicated by reference sign 46.
  • the super frame 48 comprises free block time 52 and reserved block time 54 as well.
  • Reference sign 56 indicates thereby the last free block time.
  • the wireless USB channel 44 comprises a reserved time interval T res 50.
  • This time interval Tf g 58 comprises two time intervals 60 and 62.
  • the time interval Tf g 58 comprises two time intervals 60 and 62.
  • T f g 58 can be divided into a consumed time interval T con 60 and the remaining or current transaction group time T g 62.
  • a first exemplified flowchart of the method according to the present application is depicted.
  • all transferred packets from the queue element structure can be processed in a next step 104.
  • response can be formed for all packets received in in-endpoints in MMC.
  • MMC T MMC can be calculated by approximating the number of CTAs based on the number of
  • the scheduled and the ,,to be scheduled" queues 23 and 24 can be cleared in step 104.
  • the available wireless USB time T g for the current transaction group can be set to Tf g in step 108. Otherwise, in case the minimum service interval time T min s comprises a lower value than the fixed group time Tf g , the available wireless USB time T g for the current transaction group can be set to T 1111n s in step 110.
  • the fixed group time Tf g is defined such that approximate periodicity of MMC scheduling with the available time T res of the reservation block.
  • the MMC packet is scheduled by the scheduling means 4.
  • Each communication in wireless USB starts with scheduling an MMC. Then it is checked in step 114 whether a failure has occurred during scheduling the MMC packet. In case, a failure occurs it can be asserted (step 116). In the other case, in a next step 118, it is checked whether any interrupt endpoints to be scheduled are existent in the respective queue.
  • the interrupt endpoints to be scheduled are provided by a fairness queue, such as a circular queue, and comprise a higher priority, in particular the first priority, than other elements to be scheduled, like device notification time slot, control/bulk endpoint and the like.
  • the at least one interrupt endpoint is scheduled. This step 120 may comprise several substeps which are shown in Fig. 5 and elucidated in the following.
  • Fig. 5 shows a second flowchart of the method according to the present application for scheduling interrupt endpoints.
  • a first step 202 the method can be started. Then, the endpoint can be set to the current interrupt endpoint which should be scheduled in step 204. Afterwards, it can be checked whether the available wireless USB time T g of the current transaction group is greater than zero in step 206. If the time T g is lower than zero, the interrupt endpoint scheduling process is terminated in step 224.
  • step 208 it can be continued in step 208, wherein it is checked whether the so called super frame rollover flag is set to true.
  • the super frame rollover flag is set to true.
  • the time interval of the super frame may be 65 micro second.
  • the polling interval can be reduced by one super frame resulting in that the super frame rollover flag can be reset if the polling interval is reduced below 65 micro second.
  • the polling interval is set back to the original value and the super frame rollover flag is set accordingly.
  • the super frame rollover flag is set to true, it can be continued with checking whether all interrupt endpoints are traversed (step 220). If the super frame rollover flag is not set to true, it is verified whether the wireless USB channel time T ints at which the interrupt endpoint is to be scheduled is smaller than the wireless USB channel time T ct . If the result of this inequation is false, it is proceed with the previous mentioned step 220.
  • An interrupt endpoint may be an in-endpoint, meaning that the device transmits (DT), or an out-endpoint, meaning that the device receives (DR).
  • DT transmits
  • DR receives
  • the sQH of the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time T g is reduced by the time required for the respective endpoint.
  • This can be performed in step 214, meanwhile in the other case, in step 216 the acknowledge sQH corresponding to the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time T g is reduced by the time required for the acknowledgement.
  • the wireless USB channel time T ints at which the interrupt endpoint is to be scheduled is set to the sum of the wireless channel time T ct , the endpoint time and a threshold. Afterwards, it is preceded with step 220. If not all interrupt endpoints existent in the interrupt endpoint queue 38 are traversed, it is traversed to the next endpoint (step 222) and the process is continued with step 206. Otherwise the process is terminated (step 224).
  • step 122 in case the queue of interrupt endpoints is empty, i.e. no interrupt endpoint must be scheduled during the present transaction group, it is continued with step 122.
  • a DNTS packet can be scheduled, if any DNTS is existent.
  • this step 122 may comprise several substeps.
  • the corresponding flowchart representing the DNTS scheduling process is depicted in Fig. 6.
  • This process can be started in step 302 and in the following step 304, it can be checked whether the available wireless USB time T g of the current transaction group is greater than zero in step 304.
  • the process can be directly terminated, in case the time T g is not greater than zero in step 312. Otherwise, in step 306, it is verified whether the elapsed time Tdnts since the last DNTS is scheduled is smaller than the wireless USB channel time T ct . In case, the elapsed time Tdnts is greater than the wireless USB channel time T ct the process is terminated in step 312.
  • the DNTS sQH is appended to the ,,to be scheduled" queue 24 and the transaction group time T g is reduced by the DNTS time in step 308.
  • the elapsed time Tdnts is set to the sum of wireless USB channel time T ct and the time of the DNTS service interval. Then, the DNTS scheduling process is terminated in step 312 and it can be continued with step 124 depicted in the flowchart of Fig. 4.
  • step 124 it is checked whether transaction group time T g is still available. In case, the transaction group time T g is still greater than zero, it is continued with step 126. More particularly, control and/or bulk interrupt endpoints can be scheduled in this step 126. Otherwise, it can be directly continued with step 128. A detailed representation of this scheduling process is shown in Fig. 7.
  • Control endpoints and bulk endpoints may comprise the same priority and can be existent in the second queue 40, i.e. control/bulk endpoint fairness queue, like a circular queue.
  • the process is started in step 402 and the current endpoint from the control/bulk endpoint fairness queue is determined in step 404.
  • the available transaction group time T g is checked. In case the transaction group time T g is not smaller than zero, and thus, the process is not terminated in step 422, the type of the current endpoint is verified.
  • the endpoint may be an in-endpoint or an out-endpoint. In the shown example it is checked whether the current endpoint is an in-endpoint (step 414).
  • step 410 the acknowledge sQH corresponding to the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time T g is reduced by the time required for the acknowledgement.
  • step 412 it can be checked whether the endpoint is a control endpoint or a bulk endpoint. More particularly, in step 414 it is verified whether the endpoint is a control endpoint.
  • the endpoint is a control endpoint
  • setup bytes are included into the MMC packet and the so called setup bytes to be added flag is set to false in step 416.
  • step 418 it is checked whether all endpoints are traversed. If all endpoints are traversed, the process is terminated in step 422. Else, it is traversed to the next endpoint in step 420, and subsequently to this step it can be continued with step 406.
  • step 128 all sQHs placed in the ,,to be scheduled" queue 24 are scheduled, or in other words, fit into the reservation block (step 130) and the next MMC time is defined as well as the wireless USB channel time is updated (step 132).
  • step 130 A detailed representation of step 130 is depicted in Fig. 8.
  • the process is started in step 502 and the current head of the ,,to be scheduled" queue 24 is determined in step 504. Furthermore, the transaction group time T g is set to the result of the difference between the time T res of the reservation block and the consumed time T con . Then, in step 506, it is testified whether the transaction group T g is greater than zero and the current endpoint is not equal to zero. A negative result causes the termination of the process in step 516 while a positive results yields to step 508.
  • step 508 the respective packet is fit into the reservation block. In case an error in fitting is not detected in step 510, and thus, it is not asserted in step 514, it is traversed to the next sQH in the ,,to be scheduled" queue 24.
  • step 132 depicted in the flowchart of Fig. 4 is shown in depth in Fig. 9.
  • the minimum processing time T min _ pro which defines the minimum processing time after the transaction group time T g and before the next MMC is scheduled, MMC time T MMC and the overhead time T ove into the current reservation block. If this is not possible, in step 604, the wireless USB channel time is set to the sum of the current wireless USB channel time, the remaining time in the current reservation block and the next free block time. Afterwards, the process can be terminated in step 614.
  • the wireless USB channel time is set to minimum processing time T min _ pro and the next MMC time T MMC is set to the wireless USB channel time (step 608).
  • it is checked once again in the following step 610, whether it is possible to fit the minimum processing time T min _ pro and MMC time T MMC and the overhead time T ove into the current reservation block. For the case it is not possible, a warning is given while otherwise, the process is terminated. After terminating the previous process, the whole scheduling method can be terminated in step 132, as shown in Fig. 4.
  • the logical blocks in the schematic block diagrams as well as the flowchart and algorithm steps presented in the above description may at least partially be implemented in electronic hardware and/or computer software, wherein it depends on the functionality of the logical block, flowchart step and algorithm step and on design constraints imposed on the respective devices to which degree a logical block, a flowchart step or algorithm step is implemented in hardware or software.
  • the presented logical blocks, flowchart steps and algorithm steps may for instance be implemented in one or more digital signal processors, application specific integrated circuits, field programmable gate arrays or other programmable devices.
  • the computer software may be stored in a variety of storage media of electric, magnetic, electromagnetic or optic type and may be read and executed by a processor, such as for instance a microprocessor.
  • a processor such as for instance a microprocessor.
  • the processor and the storage medium may be coupled to interchange information, or the storage medium may be included in the processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The present application relates to a method and an apparatus for scheduling time slots of a transaction group for wireless universal serial bus transaction. The method comprises establishing a first priority for a first kind of packets and establishing at least a second priority for at least a second kind of packets, wherein the first priority is set higher than the second priority. The method comprises providing a first queue for packets to be scheduled of the first kind of packets and providing at least a second queue for packets to be scheduled of the second kind of packets. The method comprises scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets existent in the second queue are not scheduled for the transaction group.

Description

Wireless universal serial bus micro-scheduled management command scheduling method
TECHNICAL FIELD OF THE INVENTION
The present application relates to a method and an apparatus for scheduling time slots of a transaction group for wireless universal serial bus transaction. The present application relates also to a computer and to a computer readable medium for providing said method.
BACKGROUND OF THE INVENTION
In modern communication system, like computer environments, several interfaces for communicating between entities are known. A widely used standard is the universal serial bus (USB) standard. Furthermore, it is an ongoing concern of modern communication systems to provide wireless interfaces. One of these interfaces is wireless USB which comprises high data rates and a superior power management compared to other wireless technologies, like Bluetooth and the like. WiMedia® (hereafter WiMedia) is an industry special group promoting ultra wideband (UWB) radio technology standardization. This wireless technology can be applied to USB to free the user from worrying about cables.
In general, wireless USB defines a wireless USB channel which is encapsulated within a set of media access control (MAC) layer super frames. Such a super frame can be divided into media access time slots (MAS), which can be reserved for a wireless USB channel. Thereby, the wireless USB channel is a continuous of linked application specific control packets, which are called micro scheduled management commands (MMCs). The MMC is used for scheduling channel time for data communication between host applications and wireless USB endpoints. In particular, the MMC is employed for scheduling the allocated protocol time slots during which one or more wireless USB transactions are conducted.
However, wireless USB scheduling methods known in prior art comprise the drawback that these methods comprises a higher error rate than other interfaces, such as wired USB. From document EP 1 667 387 A2 a wireless USB hardware scheduling method is known wherein periodic transfers are performed before asynchronous transfer. When failures are occurring, the respective endpoint is paused depending on software-configurable thresholds. However, this method comprises the disadvantage that important data might not be transferred between two entities since the time for retries is limited.
It is one object of the present application to optimize scheduling in wireless USB. It is another object to optimize forming MMCs. A further object is to ensure that the available bandwidth for a retry of interrupt endpoint is sufficient. A further object is to reduce packet errors. It is another object to maintain a high data transfer rate.
SUMMARY OF THE INVENTION
These and other objects are solved by a method for scheduling time slots of a transaction group for wireless universal serial bus transaction. The method comprises establishing a first priority for a first kind of packets and establishing at least a second priority for at least a second kind of packets, wherein the first priority is set higher than the second priority. The method comprises providing a first queue for packets to be scheduled of the first kind of packets and providing at least a second queue for packets to be scheduled of the second kind of packets. The method comprises scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets existent in the second queue are not scheduled for the transaction group.
The method can be used for data communication between different entities in wireless USB. A transaction group comprises a particular time interval, this transaction group time being reserved for communication between at least two entities, like a host application and one or more devices. Before the available time slots within the transaction group are scheduled, at least two different priorities are established for at least two different kinds of packets. A packet can be also called as a frame. It shall be understood that, according to further variants of the present application, the same priority can be established to more than one kind of packets as well as different priorities can be established to each possible kind of packet. The selection, which priority is established for which kind of packets can be performed according to user whishes, system requirements or the like. By way of example, the highest priority, like the first priority, can be established for the most important kind of packets, and the less priority, like the second priority, can be established for a less important kind of packets. However, other provisions are also possible. Packets, which should be scheduled, can be stored in queues. It is found that using different queues for packets having different priorities increases the efficiency of scheduling. According to the present application at least two queues are provided, each for packets having different priorities. Contrary to expectation it is found according to the present application that the error rate can be reduced while maintaining a high data transfer rate by scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets existent in the second queue are not scheduled for the transaction group. It can be ensured that the available time for data transfer is reserved for the packets having the first priority, for instance the highest priority. Further packets ,,to be scheduled" having less priority can be scheduled after the first queue is empty at the time point of scheduling the respective transaction group. If a packet having the first priority should be scheduled it can be provided with sufficient time for retries. Further bandwidth is not consumed by further packets with less priority. The present method provides for optimized scheduling in wireless USB with optimally formed MMCs. Transmitting errors are reduced and at the same time the data transfer rate is high.
According to a further embodiment of the present application, at least one queue can be formed as a circular queue. A circular queue or also called list can be provided for ensuring equal treatment of packets having the same priority. More particularly, the order of scheduling the packets having the same priority may depend on the order of receiving transaction requests. It shall be understood that besides circular queues other structures can be used for ensuring equal treatment of packets having same priority.
Furthermore, the packets may comprise a predefined queue element structure. A queue element structure may comprise a wireless USB header and buffers. For instance, a queue element structure can be defined which is suitable for WiMedia media access control (MAC). Thus, scheduling channel time in wireless USB can be performed efficiently and errors due to unsuitable structures can be avoided.
According to a further embodiment of the present application, scheduling a packet may comprise appending the queue element structure of the packet to be scheduled from the first or second queue into a ,,to be scheduled" queue. Furthermore, scheduling a packet according to another embodiment may comprise fitting the queue element structure of the packet to be scheduled from the ,,to be scheduled" queue into the scheduled queue. Two queues, the scheduled queue and the scheduled queue are maintained during scheduling. The ,,to be scheduled" queue may be used to hold queue element structures which are already scheduled for transfer and the other can be used to hold temporarily queue element structures till all other queue element structures are queued. Afterwards, these queue element structures could be queued to the scheduled queue. Scheduling can be done efficiently and with a reduced error rate.
As stated above, it may advantageous to establish more than two priority categories or priority levels. According to a further embodiment of the present application, at least a third priority can be established for at least a third kind of packets, wherein the third priority can be set higher than the second priority and less than the first priority. Also the packets having the third priority may not be scheduled in case a packet having the first priority is existent in the first queue. The packets having the third priority may be scheduled before the packets of the second priority category. However, the second kind of packets may be also scheduled within a transaction group in case packets of the third priority are already scheduled within the same transaction group. A particular and desired order of scheduling packets can be maintained without limiting the transfer rate.
One kind of packets to be scheduled according to an embodiment may be an interrupt endpoint, device notification time slot (DNTS) packet, control endpoint, bulk endpoint and/or isochronous endpoint. As stated above, an MMC packet is used for scheduling channel time for data communication between host application and wireless USB endpoints. More particularly, the MMC is used for advising the one or more devices when and which packets, like interrupt endpoints, device notification time slot (DNTS) packets, control endpoints, bulk endpoints and/or isochronous endpoints, are performed during the respective transaction group time. All possible packets to be scheduled can be taken into account. Furthermore, for maintaining similar structures for all packets to be scheduled, the method of the present application further comprises that at least one end point structure can be maintained for a micro-scheduled management command packet and/or device notification time slot packet. In particular, dummy endpoint structures similar to the endpoint structures of the actual endpoints can be maintained for MMCs and DNTS packets resulting in similar structures of all packets to be scheduled. Scheduling can be performed without the need to handle different structures.
In addition, the method of the present application may comprise determining available transaction group time depending at least on a predefined fixed transaction group time and/or minimum available service interval time. Before scheduling time slots of a transaction group time, it is required to determine the available transaction group time. It may be advantageous to define a fixed transaction group time for obtaining periodic and continuous communication between host applications and wireless USB endpoints. For enabling the use of available time intervals which are smaller than the fixed transaction group time, in particular, in case the minimum available service interval time is smaller than the predefined fixed transaction group time, the actual transaction group time can be set to the minimum available service interval time. The available time can be optimally used while a periodic and continuous communication can be provided for.
After determining the available transaction group time, the MMC packet can be scheduled according to an embodiment of the present application. In addition, it can be checked whether a failure is occurred during scheduling the MMC. By way of example, it can be asserted in case of an error. The error rate can be reduced.
According to a further embodiment of the present application, the first priority can be established for the interrupt endpoints. Interrupt endpoints belongs to the so called periodic transfer. Furthermore, interrupt endpoints are error prone for which reason in case of an erroneous transaction retries are provided. It is found according to the present application that the error rate in wireless USB can be significantly reduced, when at least one interrupt endpoint to be scheduled is existent, no other kinds of packets are scheduled within the respective transaction group. More particularly, further packets, such as DNTS packets, bulk endpoints or control endpoints are not scheduled. The time needed for possibly required retries cannot be consumed by other packets.
Furthermore, the third priority can be established for the device notification time slots according to another embodiment of the present application. Thereby, the third priority may be between the first and second priority. In case, the available transaction group time is sufficient, DNTS can be scheduled previous to other packets. It shall be understood that a DNTS packet is merely scheduled as per the DNTS service interval. Furthermore, it may be possible that, if transaction group time is still available, further kinds of packets can be scheduled. By way of example, control endpoints and/or bulk endpoints can be scheduled afterwards. What is more, the second priority can be established for the control endpoints and/or bulk endpoints. It can be ensured that burst data transfer is merely scheduled if sufficient wireless USB channel time is available. It may be advantageous to establish a same priority for both control endpoints and/or bulk endpoints. In addition, the control endpoints and/or bulk endpoints can be stored in a queue, like a circular list. It is noted that in case no endpoints are existent in one of the queues only MMC packets and DNTS packets as per DNTS service interval time can be scheduled.
The method according to the present application may comprise updating the wireless universal serial bus time. As a wireless USB channel time counter, a 24 bit counter having a resolution in terms of micro seconds can be used according to an embodiment of the application. The most significant byte may represent a super frame counter. The least significant two bytes may represent an offset in micro second resolution within a super frame. Moreover, this counter may be advanced when wireless USB packets are scheduled (including MMC frames). The present wireless USB channel time counter may provide for scheduling a next MMC precisely at the time mentioned in the current MMC packet with an accuracy of at least +/- 60 ns, preferably +/- 40 ns.
Another aspect of the present application is a computer readable medium having a computer program stored thereon, the computer program comprising instructions operable to cause a processor to perform a previous stated method. A further aspect of the present application is an apparatus, comprising establishing means for establishing a first priority for a first kind of packets and for establishing at least a second priority for at least a second kind of packets, wherein the first priority is set higher than the second priority, storing means for providing a first queue for packets to be scheduled of the first kind of packets and for providing at least a second queue for packets to be scheduled of the second kind of packets, and scheduling means for scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue, the packets of the second queue are not scheduled within the transaction group.
Another aspect of the present application is a computer comprising the above stated apparatus. The computer may be a host computer which can communicate to at least one further device.
These and other aspects of the present patent application become apparent from and will be elucidated with reference to the following Figures. The features of the present application and of its exemplary embodiments as presented above are understood to be disclosed also in all possible combinations with each other. BRIEF DESCRIPTION OF THE DRAWINGS
In the Figures show:
Fig. 1 an embodiment of the system according to the present application;
Fig. 2 an embodiment of the structures maintained within the scheduling means according to the present application;
Fig. 3 an exemplified diagram of the wireless USB and WiMedia MAS reservation according to the present application;
Fig. 4 a first flowchart of the method according to the present application;
Fig. 5 a second flowchart of the method according to the present application; Fig. 6 a third flowchart of the method according to the present application;
Fig. 7 a fourth flowchart of the method according to the present application;
Fig. 8 a fifth flowchart of the method according to the present application;
Fig. 9 a sixth flowchart of the method according to the present application.
Like reference numerals in different Figures indicate like elements.
DETAILED DESCRIPTION OF THE DRAWINGS
In the following detailed description of the present application, exemplary embodiments of the present application will describe and point out a method for efficiently scheduling channel time in wireless USB with reduced error rate. Fig. 1 shows a simplified embodiment of the system according to the present application. The present system 2 can be realized by hardware and/or software modules and comprises scheduling means 4 according to the present application. This wireless USB scheduling means 4 may comprise establishing means 5 for establishing a certain priority for a particular kind of packets, like establishing the first priority for interrupt endpoints and the second priority for control and bulk endpoints. Other provisions are also possible as well as further priority provisions can be performed by the establishing means 5.
The scheduling means 4 can communicate bidirectional with a wireless USB driver 18 and a generic hardware abstraction layer 10 (HAL), wherein the HAL 10 allows instructions from higher level computer languages to communicate with lower level components, such as directly with hardware. The HAL 10 is arranged between the WiMedia media access control (MAC) or wireless USB hardware 6, wherein this module 6 may be a hardware module, and the scheduling means 4 and WiMedia MAC management control module 16. In turn, the WiMedia MAC or wireless USB hardware 6 can be connected to the WiMedia physical layer (PHY) 8, wherein PHY 8 acts as an interface. Also PHY 8 can be preferably implemented as a hardware module.
Furthermore, storing means, such as a memory management module 14, a USB host stack 20 and an operation system abstraction layer (OSAL) 12 are arranged. Preferably, these modules 12, 14 and 20 can be implemented as software modules.
The scheduling means 4 can be used by the wireless USB host to schedule MMC packets as required by wireless USB specification. The output of wireless USB host can be mapped USB driver 18 so that all existing USB stack can be used with very minimal change. The scheduling means 4 according to the present application will interact with WiMedia MAC hardware 6 to transfer wireless USB packets, such as MMC packets, DNTS packets and the like.
Fig. 2 shows a simplified embodiment of the structures maintained within the scheduling means according to the present application. A distributed reservation protocol (DRP) reservation structure 22 for wireless USB is depicted in Fig. 2. The reservation structure 22 may serve to ensure that scheduling is performed merely within the reserved time slots.
In addition, two separate dummy endpoint structures 25 and 26 are shown. One endpoint structure 25 for MMC and one endpoint structure 26 for DNTS. Each of these structures 25 and 26 comprise a queue element structure (sQH) 27 required by WiMedia MAC, a wireless USB header 28 and buffers 30.
Further shown are two separate queues 38 and 40. Both queues 38 and 40 may be fairness queues, such as circular queues, for an equal treatment of packets having same priority. In the first queue 38, interrupt endpoints 32 can be stored while in the second queue 40, control endpoints 34 and bulk endpoints 36 can be stored. The control endpoints 34 and bulk endpoints 36 may comprise the same priority, which may be different, in particular, less compared to the priority of the interrupt endpoints. According to one exemplified embodiment, the priority order of the depicted wireless USB packets may be MMC, interrupt endpoints, DNTS and control/bulk endpoints. More particularly, any transaction group starts with an MMC packet. Two further queues 23 and 24 are shown in Fig. 2. One queue 23 represents the scheduled queue 23 and the other queue 24 the ,,to be scheduled" queue 24. These queues 23 and 24 are maintained by the scheduling means 4 during scheduling. The one queue 23 can be used to hold a sQH which is already scheduled for transfer and the other queue 24 can be used to hold temporarily sQHs until all out sQHs are queued. Then these sQHs can be queued to the scheduled queue 23.
Reference sign 21 indicates the wireless USB channel time counter 21. For instance, a 24 bit counter having a resolution in terms of micro seconds can be used according to an embodiment of the present application. The most significant byte may represent a super frame counter. The least significant two bytes may represent an offset in micro second within a super frame. Moreover, this counter may be advanced as and when wireless USB packets are scheduled (including MMC frames). The present wireless USB channel time counter 21 may provide for scheduling a next MMC precisely at the time mentioned in the current MMC packet with an accuracy of at least +/- 60 ns, preferably +/-
40 ns. It shall be understood that according to other variants of the present application, other wireless USB channel timer can be implemented as well.
Moreover, Fig. 3 shows an exemplified diagram of the wireless USB and
WiMedia media access slots (MAS) reservation according to the present application. The reference sign 42 indicates the start of a WiMedia super frame. Wireless USB defines a wireless USB channel 44 which is encapsulated within MAC layer super frames 48. In general, a super frame 48 can be defined as the periodic time interval used in the MAC layer to coordinate packet transmissions between devices.
Furthermore, the time interval consisting of the difference between the traversed offset and the two LSB of the wireless USB channel timer 21 is indicated by reference sign 46. In addition, the super frame 48 comprises free block time 52 and reserved block time 54 as well. Reference sign 56 indicates thereby the last free block time.
The wireless USB channel 44 comprises a reserved time interval Tres 50.
Further shown in Fig. 3 is the predefined fixed transaction group time interval Tf g 58. This time interval Tf g 58 comprises two time intervals 60 and 62. In particular, the time interval
Tf g 58 can be divided into a consumed time interval Tcon 60 and the remaining or current transaction group time Tg 62.
In Fig. 4, a first exemplified flowchart of the method according to the present application is depicted. After starting the method in a first step 102, all transferred packets from the queue element structure can be processed in a next step 104. Thereby, response can be formed for all packets received in in-endpoints in MMC. Furthermore, the time of an
MMC TMMC can be calculated by approximating the number of CTAs based on the number of
EPs, which have a transfer request. Then, the scheduled and the ,,to be scheduled" queues 23 and 24 can be cleared in step 104. In the following step 106, it can be checked whether the available minimum service interval time Tmin s is higher than a predefined fixed group time Tf g. In case the minimum service interval time Tmin s comprises a higher value than the fixed group time Tf g, the available wireless USB time Tg for the current transaction group can be set to Tf g in step 108. Otherwise, in case the minimum service interval time Tmin s comprises a lower value than the fixed group time Tf g, the available wireless USB time Tg for the current transaction group can be set to T1111n s in step 110. Thereby, the fixed group time Tf g is defined such that approximate periodicity of MMC scheduling with the available time Tres of the reservation block. In the next step 112, the MMC packet is scheduled by the scheduling means 4.
Each communication in wireless USB starts with scheduling an MMC. Then it is checked in step 114 whether a failure has occurred during scheduling the MMC packet. In case, a failure occurs it can be asserted (step 116). In the other case, in a next step 118, it is checked whether any interrupt endpoints to be scheduled are existent in the respective queue. The interrupt endpoints to be scheduled are provided by a fairness queue, such as a circular queue, and comprise a higher priority, in particular the first priority, than other elements to be scheduled, like device notification time slot, control/bulk endpoint and the like. In case at least one interrupt endpoint is existent, in step 120, the at least one interrupt endpoint is scheduled. This step 120 may comprise several substeps which are shown in Fig. 5 and elucidated in the following. Fig. 5 shows a second flowchart of the method according to the present application for scheduling interrupt endpoints.
In a first step 202, the method can be started. Then, the endpoint can be set to the current interrupt endpoint which should be scheduled in step 204. Afterwards, it can be checked whether the available wireless USB time Tg of the current transaction group is greater than zero in step 206. If the time Tg is lower than zero, the interrupt endpoint scheduling process is terminated in step 224.
In the other case, it can be continued in step 208, wherein it is checked whether the so called super frame rollover flag is set to true. In more detail, in case the polling interval required for an interrupt endpoint is greater than one super frame, the super frame rollover flag is set to true. The time interval of the super frame may be 65 micro second. When the end of the super frame is reached, or in other words the time is passed, the polling interval can be reduced by one super frame resulting in that the super frame rollover flag can be reset if the polling interval is reduced below 65 micro second. As soon as the interrupt endpoint is serviced the polling interval is set back to the original value and the super frame rollover flag is set accordingly.
In case, the super frame rollover flag is set to true, it can be continued with checking whether all interrupt endpoints are traversed (step 220). If the super frame rollover flag is not set to true, it is verified whether the wireless USB channel time Tints at which the interrupt endpoint is to be scheduled is smaller than the wireless USB channel time Tct. If the result of this inequation is false, it is proceed with the previous mentioned step 220.
Else, the type of the interrupt endpoint is checked (step 212). An interrupt endpoint may be an in-endpoint, meaning that the device transmits (DT), or an out-endpoint, meaning that the device receives (DR). In the present exemplified flowchart, it is checked in step 212, whether the interrupt endpoint is an in-endpoint.
In the event of an in-endpoint, the sQH of the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time Tg is reduced by the time required for the respective endpoint. This can be performed in step 214, meanwhile in the other case, in step 216 the acknowledge sQH corresponding to the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time Tg is reduced by the time required for the acknowledgement.
In the next step 218, the wireless USB channel time Tints at which the interrupt endpoint is to be scheduled is set to the sum of the wireless channel time Tct, the endpoint time and a threshold. Afterwards, it is preceded with step 220. If not all interrupt endpoints existent in the interrupt endpoint queue 38 are traversed, it is traversed to the next endpoint (step 222) and the process is continued with step 206. Otherwise the process is terminated (step 224).
Returning to Fig. 4 and the respective flowchart, in case the queue of interrupt endpoints is empty, i.e. no interrupt endpoint must be scheduled during the present transaction group, it is continued with step 122. In this step, a DNTS packet can be scheduled, if any DNTS is existent. Also this step 122 may comprise several substeps. The corresponding flowchart representing the DNTS scheduling process is depicted in Fig. 6.
This process can be started in step 302 and in the following step 304, it can be checked whether the available wireless USB time Tg of the current transaction group is greater than zero in step 304. The process can be directly terminated, in case the time Tg is not greater than zero in step 312. Otherwise, in step 306, it is verified whether the elapsed time Tdnts since the last DNTS is scheduled is smaller than the wireless USB channel time Tct. In case, the elapsed time Tdnts is greater than the wireless USB channel time Tct the process is terminated in step 312.
In the other case, the DNTS sQH is appended to the ,,to be scheduled" queue 24 and the transaction group time Tg is reduced by the DNTS time in step 308. Afterwards, in step 310 the elapsed time Tdnts is set to the sum of wireless USB channel time Tct and the time of the DNTS service interval. Then, the DNTS scheduling process is terminated in step 312 and it can be continued with step 124 depicted in the flowchart of Fig. 4.
In this step 124, it is checked whether transaction group time Tg is still available. In case, the transaction group time Tg is still greater than zero, it is continued with step 126. More particularly, control and/or bulk interrupt endpoints can be scheduled in this step 126. Otherwise, it can be directly continued with step 128. A detailed representation of this scheduling process is shown in Fig. 7.
Control endpoints and bulk endpoints may comprise the same priority and can be existent in the second queue 40, i.e. control/bulk endpoint fairness queue, like a circular queue. The process is started in step 402 and the current endpoint from the control/bulk endpoint fairness queue is determined in step 404. In the next step 406 the available transaction group time Tg is checked. In case the transaction group time Tg is not smaller than zero, and thus, the process is not terminated in step 422, the type of the current endpoint is verified. The endpoint may be an in-endpoint or an out-endpoint. In the shown example it is checked whether the current endpoint is an in-endpoint (step 414).
In the event of an in-endpoint, the sQH of the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time Tg is reduced by the time required for the respective endpoint. This can be performed in step 410, meanwhile in the other case, in step 412 the acknowledge sQH corresponding to the endpoint is appended to the ,,to be scheduled" queue 24 and the transaction group time Tg is reduced by the time required for the acknowledgement. After step 410 or step 412, it can be checked whether the endpoint is a control endpoint or a bulk endpoint. More particularly, in step 414 it is verified whether the endpoint is a control endpoint.
In case, the endpoint is a control endpoint, setup bytes are included into the MMC packet and the so called setup bytes to be added flag is set to false in step 416.
Otherwise it can be continued directly with step 418 without the need for performing step 416. In this step 418, it is checked whether all endpoints are traversed. If all endpoints are traversed, the process is terminated in step 422. Else, it is traversed to the next endpoint in step 420, and subsequently to this step it can be continued with step 406. Referring again to the flowchart of Fig. 4, it can be seen that after one of the steps 124, 126 or 120 it is preceded with step 128. In this step 128 all sQHs placed in the ,,to be scheduled" queue 24 are scheduled, or in other words, fit into the reservation block (step 130) and the next MMC time is defined as well as the wireless USB channel time is updated (step 132).
A detailed representation of step 130 is depicted in Fig. 8. The process is started in step 502 and the current head of the ,,to be scheduled" queue 24 is determined in step 504. Furthermore, the transaction group time Tg is set to the result of the difference between the time Tres of the reservation block and the consumed time Tcon. Then, in step 506, it is testified whether the transaction group Tg is greater than zero and the current endpoint is not equal to zero. A negative result causes the termination of the process in step 516 while a positive results yields to step 508.
In step 508, the respective packet is fit into the reservation block. In case an error in fitting is not detected in step 510, and thus, it is not asserted in step 514, it is traversed to the next sQH in the ,,to be scheduled" queue 24.
The further step 132 depicted in the flowchart of Fig. 4 is shown in depth in Fig. 9. After starting the wireless USB time updating process in step 602, at first, it is verified whether it is possible to fit the minimum processing time Tmin_pro, which defines the minimum processing time after the transaction group time Tg and before the next MMC is scheduled, MMC time TMMC and the overhead time Tove into the current reservation block. If this is not possible, in step 604, the wireless USB channel time is set to the sum of the current wireless USB channel time, the remaining time in the current reservation block and the next free block time. Afterwards, the process can be terminated in step 614.
Otherwise, in the case it is possible, the wireless USB channel time is set to minimum processing time Tmin_pro and the next MMC time TMMC is set to the wireless USB channel time (step 608). For security reasons, it is checked once again in the following step 610, whether it is possible to fit the minimum processing time Tmin_pro and MMC time TMMC and the overhead time Tove into the current reservation block. For the case it is not possible, a warning is given while otherwise, the process is terminated. After terminating the previous process, the whole scheduling method can be terminated in step 132, as shown in Fig. 4.
Furthermore, it is readily clear for a person skilled in the art that the logical blocks in the schematic block diagrams as well as the flowchart and algorithm steps presented in the above description may at least partially be implemented in electronic hardware and/or computer software, wherein it depends on the functionality of the logical block, flowchart step and algorithm step and on design constraints imposed on the respective devices to which degree a logical block, a flowchart step or algorithm step is implemented in hardware or software. The presented logical blocks, flowchart steps and algorithm steps may for instance be implemented in one or more digital signal processors, application specific integrated circuits, field programmable gate arrays or other programmable devices. The computer software may be stored in a variety of storage media of electric, magnetic, electromagnetic or optic type and may be read and executed by a processor, such as for instance a microprocessor. To this end, the processor and the storage medium may be coupled to interchange information, or the storage medium may be included in the processor.

Claims

CLAIMS:
1. A method for scheduling time slots of a transaction group for wireless universal serial bus transaction, comprising: establishing a first priority for a first kind of packets, establishing at least a second priority for at least a second kind of packets, - wherein the first priority is set higher than the second priority, wherein a first queue (38) for packets to be scheduled of the first kind of packets is provided, and at least a second queue (40) for packets to be scheduled of the second kind of packets is provided, and - scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue (38), the packets existent in the second queue (40) are not scheduled for the transaction group.
2. The method according to claim 1, wherein at least one queue (38, 40) is formed as a circular queue.
3. The method according to claim 1, wherein the packets comprise a predefined queue element structure.
4. The method according to claim 3, wherein scheduling a packet comprises appending the queue element structure of the packet to be scheduled from the first queue (38) or second queue (40) into a ,,to be scheduled" queue (24).
5. The method according to claim 4, wherein scheduling a packet comprises fitting the queue element structure of the packet to be scheduled from the ,,to be scheduled" queue (24) into the scheduled queue (23).
6. The method according to claim 1, further comprising: establishing at least a third priority for at least a third kind of packets, wherein the third priority is set higher than the second priority and less than the first priority.
7. The method according to claim 1, wherein one kind of the packets is at least one of:
A) interrupt endpoint,
B) device notification time slot packet,
C) control endpoint,
D) bulk endpoint, E) isochronous endpoint.
8. The method according to claim 7, further comprising maintaining at least one end point structure for at least one of:
A) micro-scheduled management command packet, B) device notification time slot packet.
9. The method according to claim 1, further comprising determining available transaction group time depending at least on a predefined fixed transaction group time and/or minimum available service interval time.
10. The method according to claim 9, further comprising scheduling a micro- scheduled management command packet after determining the available transaction group time.
11. The method according to claim 7, wherein the first priority is established for the interrupt endpoints.
12. The method according to claim 7, wherein the third priority is established for the device notification time slots.
13. The method according to claim 7, wherein the second priority is established for at least one of:
A) control endpoint, B) bulk endpoint,
C) control endpoint and bulk endpoint.
14. The method according to claim 1, further comprising updating the wireless universal serial bus time.
15. A computer readable medium having a computer program stored thereon, the computer program comprising: instructions operable to cause a processor to perform a method according to claim 1.
16. An apparatus for performing a method according to claim 1, comprising: establishing means (5) for establishing a first priority for a first kind of packets and for establishing at least a second priority for at least a second kind of packets, - wherein the first priority is set higher than the second priority, storing means (14) for providing a first queue (38) for packets to be scheduled of the first kind of packets and for providing at least a second queue (40) for packets to be scheduled of the second kind of packets, and scheduling means (4) for scheduling the time slots of the transaction group such that in case at least one packet is existent in the first queue (38), the packets of the second queue (40) are not scheduled within the transaction group.
17. The apparatus according to claim 16, further comprises a 24 bit wireless channel time counter (21) having a resolution in terms of micro seconds.
18. A computer comprising an apparatus according to claim 16.
PCT/IB2009/052450 2008-06-09 2009-06-09 Wireless universal serial bus micro-schedule management command scheduling method WO2009150613A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08104308.5 2008-06-09
EP08104308 2008-06-09

Publications (1)

Publication Number Publication Date
WO2009150613A1 true WO2009150613A1 (en) 2009-12-17

Family

ID=41064797

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2009/052450 WO2009150613A1 (en) 2008-06-09 2009-06-09 Wireless universal serial bus micro-schedule management command scheduling method

Country Status (1)

Country Link
WO (1) WO2009150613A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115004A1 (en) * 2013-01-22 2014-07-31 International Business Machines Corporation Arbitration of multiple-thousands of flows for convergence enhanced ethernet
CN108390832A (en) * 2018-02-12 2018-08-10 盛科网络(苏州)有限公司 A kind of configuration method of mixing rate pattern lower network chip calendar
US10638347B2 (en) 2014-09-04 2020-04-28 Zte Corporation Method, device and computer storage medium for transmitting a control message

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1667387A2 (en) * 2004-12-03 2006-06-07 Microsoft Corporation Wireless USB hardware scheduling
US20070061436A1 (en) * 2005-08-23 2007-03-15 Samsung Electronics Co., Ltd. Method for broadcasting data packet and receiving the data packet in wireless universal serial bus (USB) environment, wireless USB host, and wireless USB device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1667387A2 (en) * 2004-12-03 2006-06-07 Microsoft Corporation Wireless USB hardware scheduling
US20070061436A1 (en) * 2005-08-23 2007-03-15 Samsung Electronics Co., Ltd. Method for broadcasting data packet and receiving the data packet in wireless universal serial bus (USB) environment, wireless USB host, and wireless USB device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIH-YUAN HUANG ET AL: "QoS Support for USB 2.0 Periodic and Sporadic Device Requests", REAL-TIME SYSTEMS SYMPOSIUM, 2004. PROCEEDINGS. 25TH IEEE INTERNATIONA L LISBON, PORTUGAL 05-08 DEC. 2004, PISCATAWAY, NJ, USA,IEEE, 5 December 2004 (2004-12-05), pages 395 - 404, XP010759554, ISBN: 978-0-7695-2247-0 *
JENG FARN LEE ET AL: "A Per-Class QoS Service Model in IEEE 802.11e WLANs", QUALITY OF SERVICE IN HETEROGENEOUS WIRED/WIRELESS NETWORKS, 2005. SEC OND INTERNATIONAL CONFERENCE ON ORLANDO, FL, USA 22-24 AUG. 2005, PISCATAWAY, NJ, USA,IEEE, 22 August 2005 (2005-08-22), pages 26 - 33, XP010859416, ISBN: 978-0-7695-2423-8 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115004A1 (en) * 2013-01-22 2014-07-31 International Business Machines Corporation Arbitration of multiple-thousands of flows for convergence enhanced ethernet
US9210095B2 (en) 2013-01-22 2015-12-08 International Business Machines Corporation Arbitration of multiple-thousands of flows for convergence enhanced ethernet
US9843529B2 (en) 2013-01-22 2017-12-12 International Business Machines Corporation Arbitration of multiple-thousands of flows for convergence enhanced ethernet
US10834008B2 (en) 2013-01-22 2020-11-10 International Business Machines Corporation Arbitration of multiple-thousands of flows for convergence enhanced ethernet
US10638347B2 (en) 2014-09-04 2020-04-28 Zte Corporation Method, device and computer storage medium for transmitting a control message
CN108390832A (en) * 2018-02-12 2018-08-10 盛科网络(苏州)有限公司 A kind of configuration method of mixing rate pattern lower network chip calendar
CN108390832B (en) * 2018-02-12 2021-10-15 苏州盛科通信股份有限公司 Method for configuring network chip calendar in mixed rate mode

Similar Documents

Publication Publication Date Title
TWI296083B (en) Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US6690648B2 (en) Data communication apparatus, method, and system utilizing reception capability information of a destination node
US9345040B2 (en) Securing transmit openings
WO2004017220A1 (en) One-shot rdma
CN108027792B (en) Unified system and method for inter-chip and intra-chip node communication
EP2568665A1 (en) Method, device, and system for transmitting packet on pcie bus
WO2007018365A1 (en) Flow control method in wireless usb com¬ munication, and wireless usb device and wireless usb host using the same
JP6174305B2 (en) Data transmission apparatus, communication control method, and communication control program
KR20160065206A (en) Camera control interface slave device to slave device communication
US7616566B2 (en) Data flow control apparatus and method of mobile terminal for reverse communication from high speed communication device to wireless network
JP2010011255A (en) Wireless communication apparatus, and packet transfer method thereof
US7353300B2 (en) Apparatus to improve the firmware efficiency for a multiframe serial interface
WO2009150613A1 (en) Wireless universal serial bus micro-schedule management command scheduling method
US7013355B2 (en) Device and method for improved serial bus transaction using incremental address decode
US9985902B2 (en) Method and system for providing deterministic quality of service for communication devices
JP3400772B2 (en) Packet transmission / reception processing device
CN111917752A (en) Communication interface conversion device
US8281049B2 (en) Host-daughtercard configuration with double data rate bus
US7746898B2 (en) Band allocation method, communication control unit and communication apparatus
CN106776393B (en) uninterrupted serial port data receiving method and device
US20040057447A1 (en) Communication system
EP2588965B1 (en) Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform
TWI512478B (en) Bus host controller and associated method
US20090287862A1 (en) Host device and scheduling method
JPH11298555A (en) System and method for serial transfer of digital data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09762140

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09762140

Country of ref document: EP

Kind code of ref document: A1