Radio scheduling

The described scheduling method for wireless radio systems resolves conflicts by using deficit values and priority levels to ensure fair distribution of activity time, enhancing throughput and latency performance.

GB2626318BActive Publication Date: 2025-07-16NORDIC SEMICONDUCTOR
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
GB2023000657
Authority / Receiving Office
GB · GB
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-01-17
Publication Date
2025-07-16
Estimated Expiration
2043-01-17

AI Technical Summary

Technical Problem

In wireless radio systems like Bluetooth Low Energy (BLE), where only one connection can be active at a time, scheduling conflicts arise due to overlapping transmission tasks, leading to undesirable throughput and latency issues.

Method used

A scheduling method that uses deficit values to resolve conflicts by comparing and adjusting transmission tasks based on their deficit values and priority levels, ensuring fair distribution of activity time across connections.

Benefits of technology

This approach maintains a balanced and configurable scheduling that minimizes conflicts, providing improved throughput and latency performance by ensuring critical packets are transmitted promptly while maintaining fairness among connections.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000001_0000
    Figure 00000001_0000
  • Figure 00000001_0001
    Figure 00000001_0001
  • Figure 00000002_0000
    Figure 00000002_0000
Patent Text Reader

Abstract

In a wireless radio system (e.g. Bluetooth low energy (BLE)) where only one connection between a pair of devices is allowed at one time, a method of scheduling activation of those channels. Each conne
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND OF THE INVENTION This invention relates to methods, devices and software for scheduling radio transmissions between radio devices. When a first radio device, such as Bluetooth™ Low Energy (BLE) central or peripheral device, is responsible for maintaining connections to a plurality of other radio devices, but can transmit over at most one of the connections at a time, a challenge can arise as to how best to schedule data for transmission over the different connections. In BLE, for example, the master device assigns each connection a series of connection events which provide opportunities for radio packets to be sent from, and optionally received by, the master device. These connection events start at anchor points that are spaced apart from each other by a connection interval assigned to the respective connection. The duration of a connection event can vary depending on how much data is queued for transmission over the respective connection. A scheduler in a master device may receive transmission tasks for scheduling on respective connections. These tasks may be received from a host or application component that is executing on the master device. A transmission task may comprise a request to start a new connection event on an indicated connection, or a request to extend a current connection event on the indicated connection (e.g. in order to send or receive additional data). It may be associated with a task duration. When transmission tasks overlap, it may not be possible to satisfy all of them, and the scheduler may have to cancel (e.g. reject) one or more transmission tasks in order to satisfy others. If requested transmission tasks are repeatedly not scheduled for a particular connection, this may cause undesirable throughput or latency problems for an application that is requesting them. It is therefore desirable that scheduling conflict are minimised and, when they do occur, that they are resolved in a way that reduces undesirable application-level impacts. Embodiments of the present invention seek to provide a better approach to scheduling radio transmissions. SUMMARY OF THE INVENTION From a first aspect, the invention provides a first radio device configured for radio communication over respective connections of a plurality of connections between the first radio device and a respective plurality of further radio devices, wherein each connection is associated with a respective time series of connection events during which data transmission can occur over the connection and wherein the first radio device can communicate over at most one of the plurality of connections at a time, wherein the first radio device is further configured to schedule radio transmissions over the plurality of connections by: for each of the plurality of connections, periodically incrementing a respective deficit value for the respective connection by a respective quantum, and decrementing the deficit value when data is transmitted over the connection; maintaining a set of scheduled transmission tasks, wherein each scheduled transmission task in the set is associated with a respective one or more connection events of a respective connection of the plurality of connections; processing a first transmission task for a first connection of the plurality of connections, wherein the first transmission task is not in the set of scheduled transmission tasks, to identify one or more first connection events of the first connection for performing the first transmission task; determining if any of the one or more first connection events overlaps in time with a connection event of any second transmission task, for a second connection of the plurality of connections, that is in the set of scheduled transmission tasks; and if an overlap in time is identified, and optionally one or more further conditions are met, determining if the deficit value of the first connection is larger than the deficit value of the second connection, and, if the deficit value of the first connection is larger than the deficit value of the second connection, removing the second transmission task from the set of scheduled transmission tasks and adding the first transmission task to the set of scheduled transmission tasks. From a second aspect, the invention provides a method of scheduling radio transmissions over respective connections of a plurality of connections between a first radio device and a respective plurality of further radio devices, wherein each connection is associated with a respective time series of connection events during which data transmission can occur over the connection and wherein the first radio device communicates over at most one of the plurality of connections at a time, the method comprising: for each of the plurality of connections, periodically incrementing a respective deficit value for the respective connection by a respective quantum, and decrementing the deficit value when data is transmitted over the connection; maintaining a set of scheduled transmission tasks, wherein each scheduled transmission task in the set is associated with a respective one or more connection events of a respective connection of the plurality of connections; processing a first transmission task for a first connection of the plurality of connections, wherein the first transmission task is not in the set of scheduled transmission tasks, to identify one or more first connection events of the first connection for performing the first transmission task; determining if any of the one or more first connection events overlaps in time with a connection event of any second transmission task, for a second connection of the plurality of connections, that is in the set of scheduled transmission tasks; and when an overlap in time is identified, and optionally one or more further conditions are met, determining if the deficit value of the first connection is larger than the deficit value of the second connection, and, when the deficit value of the first connection is larger than the deficit value of the second connection, removing the second transmission task from the set of scheduled transmission tasks and adding the first transmission task to the set of scheduled transmission tasks. From a third aspect, the invention provides computer software comprising instructions which, when executed by a processor of a first radio device, cause the first radio device to schedule radio transmissions over respective connections of a plurality of connections between the first radio device and a respective plurality of further radio devices, according to a method as disclosed herein. Thus it will be seen that, in accordance with at least some embodiments of the invention, a comparison of deficit values for conflicting transmission tasks can be used for resolving scheduling conflicts. The deficit values may reflect how much data has already been transmitted over the respective connections in earlier transmissions (e.g. measured in bytes or in milliseconds of activity). This can advantageously help to maintain a desired fair balance of activity time across the different connections. The deficit values are also influenced by the quantum value and by the intervals at which deficit is incremented for each connection. This can allow different connections to be given different relative weightings, e.g. in order to give a first connection a higher throughout (i.e. more activity time) and / or lower latency than a second connection. It can therefore provide a high degree of configurability to the scheduling, which may allow a scheduler in the first radio device to better satisfy potentially differing requirements of the different applications using the respective connections. It will be appreciated that, while a concept of deficit weighting is known from deficit round robin scheduling, where it is used to determine how much data should be sent over a particular channel in a given cycle, the deficit values of the present embodiments are used differently from such known methodologies in that they are here compared with each other, in instances of conflict, in order to determine whether or not to schedule a transmission task at all. Embodiments may additionally use round robin scheduling for scheduling the radio transmissions (e.g. such that different connections may appear different numbers of times in a round robin queue). However, even in such embodiments, the scheduling still differs from conventional deficit round robin scheduling, which does not determine whether one deficit value is larger than another. The plurality of connections may be stored in a sequence. The sequence may be stored in any appropriate way—e.g. as a queue or an ordered list, or by assigning a sequence value to each connection in the sequence. The one or more further conditions may include that the first connection is at the head of the sequence when the overlap is identified. In this way, every connection may be given an opportunity to schedule transmissions at some point (so long as they meet any other required conditions). The sequence of connections may be cycled at intervals (i.e. by moving the head of the queue to the back of queue), which may be regular or irregular intervals. In some embodiments, the sequence is cycled when the current or next connection event of the connection that is at the head of the sequence ends. Each transmission task may comprise a request to start a connection event, or a request to extend a connection event. The scheduling may be performed by the first radio device, e.g. by a scheduler of the first radio device, which may be a hardware- or software-based scheduler. The scheduling may be link-layer scheduling. Transmission tasks may be received by the scheduler. The transmission tasks may be generated by the first radio device (e.g. by a software application executing on the first radio device), or may be received from outside the first radio device. In a first set of embodiments the first radio device may be a master device and each of the further radio devices may be a respective slave device, while in a second set of embodiments the first radio device may be a slave device and each of the further radio devices may be a respective master device. The same first radio device may be configured to operate both as a master device to one or more slave devices, and, at the same time or at a different time, as a slave device to one or more master devices. When no overlap in time is identified, the first transmission task may be added to the set of scheduled transmission tasks. The set of scheduled transmissions tasks may be stored as a queue of tasks, or in any other appropriate manner. The first radio device may be configured to implement a scheduled transmission task (e.g. at a time appropriate to the task) by transmitting and / or receiving data by radio within the one or more connection events associated with the transmission task. In some embodiments, each transmission task may be associated with a respective task priority level selected from an ordered set of task priority levels (e.g. containing two levels, three levels, or more). The task priority level may be received by a scheduler of the first radio device from a host-layer or application-layer component on the first radio device. The one or more further conditions may include that the first transmission task has a priority level that is equal to the priority level of the second transmission task. The task priority level may be determined by the first radio device. The priority level for a transmission task for a connection, at points in time, may depend at least in part on how close the respective point in time is to a connection timeout for the connection—i.e. a time by which a transmission must occur over the connection in order to keep the connection alive. The task priority level may be higher for a closer connection timeout than it is for a more distant connection timeout, all else being equal. The task priority level may be determined only once, e.g. when the transmission task is created or received, or it may be updated over time. The task priority level may depend at least in part on a type of radio packet indicated for the transmission task. It may be higher for a control-type packet (e.g. a BLE link-layer control packet) than for a data-type packet (e.g. a BLE link-layer data packet), all else being equal (e.g. for the same proximity to a connection timeout). In some embodiments, when an overlap in time is identified, the first radio device may determine if the first transmission task has a priority level that is higher than the priority level of the second transmission task, and, when the first transmission task has a priority level that is higher than the priority level of the second transmission task, may remove the second transmission task from the set of scheduled transmission tasks and add the first transmission task to the set of scheduled transmission tasks. In some embodiments, this may occur irrespective of the deficit values of the transmission tasks and / or irrespective of which connection is at the head of a connection sequence—i.e., a high task priority level may override any consideration of deficit values and / or round robin scheduling. This can ensure that critical packets, such as control packets, or packets that are required in order to prevent a connection from timing out, are transmitted regardless of fairness to the other connections. In some embodiments, if the first transmission task has a priority level that is lower than the priority level of the second transmission task, then the first transmission task is cancelled—i.e. it is not added it to the set of scheduled transmission tasks. In some embodiments, if an overlap in time is identified and if the first transmission task does not have a priority level that is higher than a priority level of the second transmission task (either because the priority level is equal or lower, or because the embodiment does not use task priority levels) and if the deficit value of the first connection is not larger than the deficit value of the second connection (i.e. the connection of the conflicting transmission task), then the first transmission task is cancelled—i.e. it is not added it to the set of scheduled transmission tasks. In some embodiments, if an overlap in time is identified and if the first transmission task does not have a priority level that is higher than a priority level of the second transmission task (either because the priority level is equal or lower, or because the embodiment does not use task priority levels) and if any of the optional one or more further conditions is not met, then the first transmission task is cancelled—i.e. it is not added it to the set of scheduled transmission tasks. The cancellation of a transmission task may be signalled to a host or application component executing on the first radio device. In some embodiments, the first radio device is configured, when removing the second transmission task from the set of scheduled transmission tasks (i.e. when cancelling the second transmission task), additionally to remove from the set of scheduled transmission tasks any further transmission task that has a connection event that overlaps in time with any of the one or more first connection events for the first transmission task. It may be configured to do so regardless of the priority levels of the further transmission tasks. The quanta by which the deficit values are incremented periodically may be equal across the plurality of connections, but, in some embodiments, they may differ between at least two of the connections. In some situations, the deficit value for a first connection may be periodically increased by a first quantum and the deficit value for a second connection may be periodically increased by a second quantum that is different from the first quantum. The periods at which the deficit values are periodically incremented may be equal across the plurality of connections, but, in some embodiments, they may differ between at least two of the connections. In some situations, the deficit value for a first connection may be periodically increased with a first period and the deficit value for a second connection may be periodically increased with a second period that is different from the first period. In some embodiments the respective deficit value for each of the plurality of connections is incremented by a respective quantum at each connection event of the respective connection (e.g. at the beginning or end of the connection event). The respective quantum may be a function of a capacity of the respective connection. This capacity may be determined as a maximum amount of data for each connection event (e.g. in bytes), or as a maximum duration (e.g. in milliseconds) of each connection event. It may be the connection interval of the connection. The respective quantum may additionally or alternatively be a function of a respective weight parameter assigned to the connection (e.g. by a host component, or application or by a user). The same or a different weight parameter may also be used to determine a frequency with which each respective connection appears at the head of a connection sequence when performing round robin scheduling. The first radio device may evaluate the function for each connection to determine the respective quantum to apply. In some embodiments, each quantum is defined by a function that is the product of a weight parameter for a connection and a parameter indicative of a capacity of the connection. This can conveniently allow a user or application to set weightings for the different connections by controlling only the weight parameter, without having to explicitly consider differences in the connection intervals between the connections, because the first radio device (e.g. a scheduler) may account for this itself—i.e. invisibly to higher layers. In some embodiments, the quantum function may be scaled by being divided by the sum of all the weight parameters over all of the plurality of connections—e.g. Q, := q x Xj wj’ where Qi is the quantum of the ith connection, Ci is the capacity (e.g. the connection interval) of the ith connection, and Wi is the weight parameter for the ith connection. The deficit may be increased even if no data is transmitted on a particular connection event. The deficit value for each connection may be decremented only when data is sent by the first radio device over the respective connection, or only when data is received by the first radio device over the respective connection, or when data is sent or received over the respective connection. The decrement may be applied for every connection event at which data transmission occurs. It may be applied in respect of each transmission task or each message that is sent or received over the connection. For each connection, whenever data is transmitted over the connection (e.g. for each non-empty connection event), the deficit value for the connection may be decremented by an amount that depends on how much data is transmitted. This may be measured in data information (e.g. bits or bytes) or in connection activity time (e.g. milliseconds of transmission time). Each deficit value may be a measure of data (e.g. expressed in bytes), or a measure of time (e.g. expressed in milliseconds). In a first set of embodiments, the deficit value of each connection is decremented for each transmission task, or for each message sent and / or received over the connection, by a value indicative of how much data is communicated by the respective task or message (e.g. in bytes). In a second set of embodiments, the deficit value of each connection is decremented for each transmission task, or each message sent and / or received over the connection, by a value indicative of a duration of the respective transmission task or message (e.g. a time value in milliseconds). In some embodiments, the first radio device (e.g. a scheduler within the first radio device) may select a respective connection interval (i.e. time between the starts of successive connection events) for each of the plurality of connections by: receiving a minimum connection interval parameter and a maximum connection interval parameter for each connection; and using the received minimum and maximum connection interval parameters to select a respective connection interval for each connection having a duration of K x Nx milliseconds, for a common constant K, a common constant N, and a respective integer x, by determining a respective value for the integer x such that connection interval assigned to the respective connection is no less than the respective minimum connection interval parameter for the connection and is no greater than the respective maximum connection interval parameter for the connection. Selecting such intervals has been found to allow the connection events to be offset from each other in a way that many connections can be supported while eliminating or reducing the incidence of conflicting connection events. K may have any value, but in some embodiments K = 7.5 ms or 3.75 ms. These values have been found to be especially advantageous when the radio transmissions are BLE radio transmissions, because BLE specifies a minimum connection interval of 7.5 ms. N may have any value, but in some embodiments N = 2. The first radio device may assign an anchor point to each connection (i.e. a value that determines the start of each connection event for the connection) such that each connection has at least one anchor point that is offset from an anchor point of another connection by exactly K milliseconds. This can further enable an efficient scheduling of a large number of connections. The first radio device may receive the minimum and maximum connection interval parameters for a connection by radio from the respective further radio device of the connection. It may communicate the selected connection interval to the further radio device by radio. In some embodiments, each connection may be associated with a respective connection priority level (e.g. a priority label) selected from an ordered set of connection priority levels. The connection priority level may be received by a scheduler of the first radio device, e.g. from host or application software executing on the first radio device. The connection priorities may be set independently of individual transmission task priorities. The connection priority level of each connection may be used by the first radio device when determining a respective anchor point (start time offset) for the connection. The anchor points of the connection events may also be changed using one or more protocol (e.g. BLE) control procedures triggered by a connection priority level change. When establishing a new connection, the first radio device may use the connection priority level to determine whether to offset an anchor point for the new connection from the anchor points of one or more existing connections by a negative offset (i.e. earlier in time) or by a positive offset (i.e. later in time). In some embodiments, each new connection is assigned one of two priority levels—a first connection priority level (e.g. “normal”) or a second connection priority level (e.g. “priority”)—and the first radio device offsets an anchor point for the new connection positively from one or more or all existing connections when the new connection has the first connection priority level and negatively from one or more or all existing connections when the new connection has the second connection priority level. In this way, the latency of “priority” connections may be reduced when scheduling transmission tasks as disclosed herein, because the chance of the set of scheduled tasks already containing a conflicting task is lower for earlier connection events, and so the likelihood of a task for the connection being cancelled is lower. This can allow connections to be given different latency characteristics. Thus some embodiments can provide higher-level control of the relative throughputs of the connections by selecting appropriate quanta, and independently to control the relative latencies of the connections by selecting appropriate connection priority levels. Such an approach can facilitate good quality of service (QoS) for many different connection types and topologies, e.g. enabling different configurations to be selected for low latency, high throughput, bursting, pinging, etc. The first radio device may transmit and / or receive data using radio frequency hopping over a plurality of channels. Each connection may correspond to a respective time division of a shared radio medium (e.g. a shared frequency-hopping pattern). In some embodiments, each of the first and further radio devices is a Bluetooth™ Low Energy device and the plurality of connections are Bluetooth™ Low Energy connections. However, this is not essential in all embodiments, and the principles disclosed herein may be advantageously applied to other proprietary or standardised radio protocols in some embodiments. Each of the first and / or further radio devices may be any electrical device, such as a wireless sensor, audio appliance, laptop computer, etc., or it may be a component for use within a larger appliance. In some embodiments it is an integrated circuit, such as a system-on-chip (SoC) or a radio-on-a-chip. It may include an antenna or may comprise an interface for connection to an external antenna. It may comprise interfaces for connection to other external components that may be required for the device to operate, such as a power supply, or a power amplifier, or a crystal oscillator, etc. Features of any aspect or embodiment described herein may, wherever appropriate, be applied to any other aspect or embodiment described herein. Where reference is made to different embodiments or sets of embodiments, it should be understood that these are not necessarily distinct but may overlap. BRIEF DESCRIPTION OF THE DRAWINGS Certain embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a schematic drawing of a radio system embodying the invention; Figure 2 is a schematic drawing of a first device of the radio system; Figure 3 is a timing diagram of connection event start times for five radio connections on which transmissions may be scheduled according to methods embodying the invention; Figure 4 is a timing diagram showing how deficit values are updated for two connections according to a scheduling algorithm embodying the invention; Figure 5 is a graph showing how requested connection intervals (Cl) are mapped to selected connection intervals according to some embodiments; Figure 6 is a zoomed in view of the graph of Figure 5; Figure 7 is a diagram showing how anchor points can be offset based on connection priority according to some embodiments; Figure 8 is a sequence of six diagrams showing how anchor offsets can be adjusted according to some embodiments; Figure 9 is a diagram of an offset chain for adjusting anchor offsets according to some embodiments; Figure 10 is plot of simulated performance metrics for varying numbers of radio connections from one to seven when using a scheduling algorithm embodying the invention; and Figure 11 is a plot of simulated performance metrics for varying numbers of radio connections from one to seven when using different connection priorities and a scheduling algorithm embodying the invention. DETAILED DESCRIPTION Figure 1 shows a radio system 100 comprising a first radio device 102 and three further radio devices 104, 106, 108 that can exchange data with the first radio device 102 over respective data connections. The devices 102-108 communicate using the same radio protocol, which in some examples is Bluetooth™ Low Energy (BLE). Each device 102-108 may be a static or mobile electronic device such as a wireless sensor, a domestic appliance, a vehicle, a personal computer, a cellular telephone, etc., or may be a radio component (e.g. a radio-on-a-chip) contained within such an electronic device. Each device 102-108 may include a processor and memory storing software instructions for execution by the processor. Each may include a radio transceiver, e.g. provided as a radio-on-a-chip, and an antenna, and other components for radio transmission and reception. Any of the operations disclosed herein may be implemented in hardware (e.g. by dedicated analog and / or digital circuitry) or in software, or in any appropriate combination of hardware and software. Only one connection is allowed to be active at a time, and the first radio device 102 must therefore communicate with only one of the further radio devices 104, 106, 108 at a time. In some examples the first radio device 102 is a master device (e.g. a BLE central device) and the further radio devices 104, 106, 108 are associated with it as slave devices (e.g. BLE peripheral devices). However, in other examples the first radio device 102 may be a slave device (e.g. a BLE peripheral device) that has connections to multiple master devices 104, 106, 108 (e.g. being three different BLE central devices). In both cases, the first radio device 102 can use a scheduler to arbitrate between the connections using the approaches disclosed herein. The following detailed description assumes the first radio device 102 is a master device, but it should be understood that this is not essential, and it may instead be a slave device. When the first radio device 102 is a master device, it is responsible for coordinating access to the radio medium for itself and the three peripheral devices 104, 106, 108. It does so in a time-multiplexed manner by periodically polling each of the slave devices 104-108 in turn. The connection to each slave device 104-108 is assigned a respective connection interval, which is the time between successive regular connection events. Each connection event provides an opportunity for the master device 102 to exchange data with a respective slave device 104-108. Specific connection events may also be referred to as connection instants. Multiple packets may be transferred to and from a slave device 104-108 during one connection event. Each connection event normally contains at least one packet sent by the master device 102. However, the master device 102 may fail to transmit in a connection event at all on occasions, e.g. due to scheduling conflicts or if subrating is being used. The amount of data that can be exchanged with a slave 104-108 during a connection event can vary, but, when the master device 102 is connected to multiple slaves 104-108, it is constrained by the timing of the next connection event for a different one of the slaves 104-108. The relative positions of the starts of the connection events (referred to as anchor points in BLE) across the different peripheral connections will affect the maximum duration of the connection events for each connection, and thus the potential throughput of each connection. In BLE, connection intervals can range from 7.5 ms to 4 secs, in increments of 1.25 ms. The data connection is established with a connection interval parameter value set by the master device 102. A slave 104-108 may request a different value, but the master device 102 has the final say in the value, and may choose an interval that is closer to a requested value, but still not equal to it The slave devices 104-108 may also signal to the master device 102 a minimum and / or maximum connection interval for a connection to the slave. The ability to change the connection interval dynamically enables the throughput speed of a data connection to be changed according to changing circumstances. A long connection interval value (e.g. 4 seconds) can lead to lower power consumption, but reduced data throughput and higher latency compared with a shorter connection interval. The master device 102 manages the scheduling of transmissions to and from the slave devices 104-108, during the respective connection events, over the various connections. This is not straightforward, especially as the master device 102 does not necessarily know what each connection will be used for, e.g. at an application level, and so cannot necessarily anticipate how much data will need to be transmitted to and / or received from each slave 104-108 in any given period. The master device 102 addresses this challenge using various techniques as disclosed herein. In particular, it queues up transmission tasks for each connection and uses a novel form of deficit-weighted round-robin scheduling to give a fair opportunity to each connection. It also uses an innovative approach to setting the connection intervals of each connection so as to reduces the likelihood of scheduling conflicts arising. Figure 2 shows some of the internal components of an exemplary master device 102. The master device 102 may be a complete device, such as a wireless sensor, cellular phone, etc., including a power supply, but it may be a system-on-chip, e.g. for integration into a more complex device. It includes a radio transceiver 202 (e.g. a BLE radio) which is controlled by a central processing unit (CPU) 204 that executes software stored in a memory 206 (e.g. comprising RAM and / or non-volatile memory). The memory 206 may store software, data, parameters, etc. In the present example, the memory 206 stores three software applications 208a, 208b, 208c that all make use of the radio 202 to communicate with the respective slave devices 104, 106, 108. The applications 208a-c send and receive data over the radio connections through firmware implementing a radio stack 210 (e.g. a BLE stack). The firmware includes within it a scheduler 212 component which can receive transmission tasks from a higher level within the radio stack 210 (e.g. a host layer) in response to the communication requirements of the applications 208a-c. A transmission task may comprise a request to start a connection event, or a request to extend a connection event. The applications 208a-c may have different requirements for throughput and / or latency, which they may communicate to the radio stack 210. These requirements may be used to influence the connection scheduling as described below in order to provide a desired quality of service (QoS). The scheduler 212 combines round robin scheduling with a comparison of deficit values that are maintained for each connection to determine how to resolve scheduling conflicts. It provides a good performance with configurable weights for each connection to ensure optimal performance. Instead of losing priority when the deficit counter is exhausted, as happens in conventional deficit-weighted round robin scheduling, the present scheduler 212 uses a novel approach that will be referred to herein as “largest-deficit-weighted round robin” (LDWRR) scheduling in which a tasks loses priority when there is a conflicting task with a larger deficit. This results in a more relaxed scheduling compared to conventional weighted round robin scheduling or deficit-weighted round robin scheduling, with more frequent task switching, which can improve latency. An exemplary pseudocode implementation of the scheduling algorithm is as follows: Input: t, task to schedule Q, a queue of scheduled tasks WRR, weighted round robin connection queue; this indicates the sequence of priority to tasks D, deficit values for each connection Output: Q’, updated queue of scheduled tasks if Q.hasConflict (t, <) t.cancel (); else if Q.hasConflict (t, =) if WRR.head # t / .cancel (); else if Q.hasConflict (t, LargerDeficit) t.cancel (); else Q. cancelConflict (0; else Q.cancelConflict (0; Q.insert (0; return Q; where... “hasConflict”: checks if there are tasks with overlapping time and uses the second argument for comparison to filter them out. In particular “<” checks for tasks with higher task priority and “=” checks for tasks with equal task priority, where task priority is defined by protocol data unit (PDU) type and proximity to timeout. “LargerDeficit” checks fortasks with a larger deficit value. “cancelConflict”: cancels the tasks with overlapping time (regardless of their priority) “cancel”: cancels the selected task Data representing the queue of scheduled tasks, the connection queue, and the set of deficit values, may be stored in memory (e.g. the memory 206, and / or one or more hardware registers), using any appropriate representation or format. Either of two approaches may be used by the scheduler 212 for calculating the deficit values, D, for the connections: a data-based deficit or a time-based deficit. A data-based deficit can be calculated and updated as follows: upon sending / receiving a message of X bytes on connection i, the Di counter is decremented by X. Each connection event of connection i, the Di counter in incremented by a quantum, Qi, which is dependent on (e.g. proportional to) the maximum data volume that can fit into a connection event or interval of the connection. A time-based deficit can be calculated and updated as follows: upon sending / receiving a message over X ms on connection i, the Di counter is decremented by X. Each connection event of connection i, the Di counter is incremented by a quantum, Qi, which is dependent on (e.g. proportional to) the connection interval time. In both cases, each quantum, Qi, may also depend on a respective weight parameter for each connection, which may be received by the scheduler 212 from a host layer or application layer. In some embodiments, the quantum may be calculated by the scheduler 212, for each connection i = 1, ..., n, in accordance with the function Q, ;= Ci x ———, where Q, is the quantum of the ith connection, C, is a time-based or data-^j=iwj based measure of the capacity of the ith connection (e.g. its connection interval), and l / IX is a weight parameter for the ith connection. The weight parameter may be a variable for determining relative throughput on each connection, set by an application 208 or BLE host-layer component. The weight parameter may, in some embodiments, be controlled by a custom Bluetooth™ Host Controller Interface (HCI) command. Figure 4 illustrates the incrementing and decrementing of the deficit values for two example connections, x=1 and x=2. Three main timing-related updates are performed by the scheduler 212 at intervals: increment Deficit (+D): every start of a potential connection event (scheduled or blocked), the connection has its deficit counter incremented by the "quantum" (a fixed value for each connection based on connection interval and weight); decrement Deficit (-D): when a scheduled connection event or extension are starting (removed from the list of scheduled tasks), the allocated data amount or time is subtracted from the deficit counter; cycle the round robin (eRR): when the connection of a task that had equal task priority and was at the head of the connection queue ends, the queue is cycled. In Figure 4, the eRR is marked at every connection event end, but it only occurs if the connection was at the head of the queue. In the case of two connections with same weight, it should happen in an alternating fashion (connections each get their priority in turn: i.e. 1,2,1,2,1,2,,.. and as a result also cycle them in turn at the end of the active time). The round robin cycle may be rebuilt at intervals to evenly distribute connections along the buffer. The weights may be integer values and the connections may be placed in a sequence if they satisfy the following condition:!^ x >s, where s is a slot currently being considered and is the xth allocation of connection i. Over time, Wix will consider all integer values in the range [0, ..., W,- 1], where LV, is the weight parameter of the / th connection. This can help ensure an even distribution. For various Si Wi weights it will aim to space the same connection out by slots. For example, with three connections, each of weight = 1, the WRR queue would be "123" (where each number is the number of the connection) resulting in the sequence "123123123123...". However if the weight of the second connection were set equal to 2, the WRR queue might then resemble something similar to "1232", resulting in the sequence "123212321232...". This allows for more frequent round-robin priority by reducing latency slightly but also giving more opportunities to transmit data. Although in this example the same quantum weight parameter is used for determining the quantum by which each deficit value is incremented and also for determining the number of times each connection appears in the round robin queue, in other embodiments these could be controlled by two different parameters—i.e. a quantum weight parameter and an independent round-robin weight parameter. These could then be set by two different custom HCI commands. The connection queue may be stored and managed using any appropriate data structure (e.g. in the memory 206) such as an ordered list or connection identifiers, or by assigning a different counter value to each connection in the queue. In order to further improve the performance of the radio connections, the scheduler 212 also implements a novel approach to arranging the anchor points (i.e. start times) of the connection events of the respective connections. This makes use of a “connection priority” label that is assigned to each connection, e.g. at the host or application layer, which can be used to adjust the latency performance provided to the different connections. The connection priority could, in some embodiments, be controlled using a custom Bluetooth™ Host Controller Interface (HCI) command. The scheduler 212 may provide an interface to a host and / or application 208a-c on the device 102, for modifying the label and the quantum weight parameter of one or more connections. When a change to a weight parameter is made, this will trigger a refresh of the quantum values and a rebuild of the round robin buffer. To arrange the anchor points, the scheduler 212 first ensures all tasks are power two multiples from one another—i.e. it selects connection intervals (Cl) of the form Cl = 2n. This is illustrated in Figure 3, which shows five example connections, x=1,...,5, in which x=1 has the smallest connection interval and x=5 has the largest connection interval. This can ensure no overlapping connection events, by also applying suitable offsets, at least until the number of connections exceeds a maximum. The scheduler 212 determines what connection interval, Cmtenai, to allocate to each new connection by selecting an appropriate value of x while respecting any minimum and maximum connection interval parameters received from the respective slave device 104, 106, 108. It’s possible for two or more connections to have the same connection interval, but they will be offset from each other as explained above. This offset guarantees no overlaps on the connection event starting times. Figures 5 and 6 show the effect of the scheduler 212 selecting connection intervals (Cl) (on the y axis), in response to requests from the slave devices for Cis of arbitrary durations (on the x axis), where the selected Cis fit the formula y = 3.75ms x 2n, where n is the largest integer such that y <x. This is one way in which the scheduler 212 may select Cis in some embodiments—i.e. by rounding up to the nearest Cl that is a power of two times 3.75ms (or some other factor, such as 7.5ms). The “hyper-period” can be defined as the largest connection interval, and the “hypoperiod” as the smallest connection interval. It can be beneficial to have offsets relatively small and being multiples of the hypo-period. Offsetting the start times of the connection events as shown in Figure 3 then allows the scheduler 212 to guarantee that no connection instants overlap if all connections i = 1, ..., n have different offsets of the form offset = (i-1) x7.5 ms, If the largest offset, (n-1) x7.5 ms, is smaller than the hypo-period, 2X x 7.5 ms, then it can be ensured there will be no overlaps. Offset increments of 5 ms, 7.5 ms or 10 ms have been found to perform particularly well when used with BLE connections. As can be seen in Figure 3, the task for connection x=5 exceeds the limit for o and so overlaps in time with connection x=1. Embodiments may advantageously seek to avoid such a situation arising, e.g. by increasing the smallest connection interval or by dropping a connection. The scheduler212 determines howto allocate offsets to different connections based at least in part on what connection priority label has been assigned to each request it receives for a new connection. In the present example, each connection is labelled with a Ciabei = “normal” or “priority”. New connections are appended on one or other end of a list of connections, C, dependent on their priority label, or are placed into empty slots when they present themselves. In order to maintain the quality of “priority” labelled connections, the scheduler 212 may limit the number of slots for “normal” connections. An exemplary pseudocode implementation for determining the connection intervals and offsets of the connections is as follows: Input: C, a list of all the radio connections Output: C’, updated connection list foreach C, e C do Ci, interval-adjust_interval (); C.sort_by_label_and_interval (); acc = {0, 0}; foreach Ci e C do label = Ci, label', if label == “Normal” 0 / , offset = acci x 7.5ms; acci = acc-i + 1; else Ct, offset = -(1 + acco) x 7.5ms; acco = acco + 1; return C; The function “adjust_interval ()” selects an interval of the format K x 2X with K = 3.75 or 7.5 ms. The function “sort_by_label_and_interval ()” is not essential, but may be applied in some embodiments. It first sorts the connections so that “priority” tasks will be served first, followed by “normal” tasks, and then sub-sorts each group by connection interval, with lower connection intervals being served first among their respective priority level. This optional step can provide the connections with the better offset opportunities. Figure 7 shows how this algorithm offsets “priority” connections earlier in time than “normal” connections. This has the effect of providing lower latency and fewer missed instants (i.e. cancelled transmission tasks) to the “priority” connections compared with the “normal” connections. The connections with the lowest offset have minimal to no latency and missed instants. However, overall the throughput is still shared among all the connections fairly, based on the quantum weights assigned to the connections, as explained above. Figure 8 illustrates a sequence of events and their effect on the offset. At the first stage (a) there is a connection 0. Since no other connection is present this can be kept to the default offset at 0. In the second frame (b), connection 1 is added. By default new connections are inserted towards the end of the chain. In the third frame (c), connection 1 is labelled as “priority”, changing the offset and moving it to the front of the chain, -7.5ms in relation to the previously-first connection of the chain. In the fourth frame (d), connection 0 is labelled as “priority” and similarly to the previous step is moved to the front of the chain, 7.5ms in before the other connection. In the fifth frame (e), connection 2 is added. As before, the new connection is inserted towards the end of the chain. In the sixth frame (f), connection 1 is once more labelled as “priority”, and is moved towards the front of the chain with +7.5ms offset. However this leads to an empty space which may not be desirable. This last operation also moved the 0. More generally, the logic for the offset selection, implemented by the scheduler 212 in some embodiments, may be as follows. An origin point O can be defined. This is the 0 in the graph and represents the end of the higher priority zone. Connections can be placed on either side of it with incremental offsets of 7.5ms. By default there are four operations that might occur: create, destroy, promote and demote. Figure 9 illustrates the structure of such an offset chain. The create operation is used to insert new connections into the chain. This is done by starting at the origin and checking incrementally all offsets for the first free slot into which the connection can be inserted. It no such slot is found it is inserted after the tail. For example in the sixth frame (f), a new connection could be inserted just after the origin, between connection 0 and 2. The destroy operation is used to remove a connection from the chain. The connection can be simply removed from the chain and the origin can be updated if it was after the connection that was just removed. The promote operation is used to increase priority of a connection moving it towards the head of the chain. This is achieved in a straight forward fashion by removing the connection from its all position and inserting it in front of all the other connections. As this step moves a connection it might lead to holes in the chain. Additionally if the origin was just after the position the connection had before moving, the origin is also moved forward to the previous connection in the chain. Overall this step can be considered as a destroy operation followed by a modified create as we first remove the connection and then insert it in front of all the others. The demote operation is used to decrease priority of a connection moving it towards the end of the chain. This can be achieved similarly to the create operation, where the connection is removed and reinserted into the chain on the right of the origin. However if the origin was just after the connection, the origin can just be moved to the left of the connection simplifying the operation. For this operation it can in theory just be a destroy operation followed by a create operation. From those four operation there is an increase in empty slots in the middle of the chain which will hurt QoS. It might be desirable to either have an additional compress operation, adjusting all the offsets to remove the holes. Another possibility is to assign the holes for other not necessarily periodic radio operations such as scanning, advertising, broadcast. If no holes are present, they may be performed some time before the chains head. Embodiments may implement one or other of these. Figure 10 shows simulated results for one connection, two connections, three connections, five connections, and seven connections, using a scheduling algorithm as described above, but without adjusting the offsets based on labelled priorities. The throughput, percentage of valid instants (i.e. no conflict cancellations), and the proximity to timeout, are all plotted. Figure 11 shows similar simulated results, but with offsets adjusted based on labelled priorities as described above. In this case, more than two different priorities are used. Connection C5 and C6 were labelled with highest priority, followed by C2 and C7 with slightly lower priority, finally followed by the other connection C1, C3 and C4. The benefit of these adjustments can be seen particularly in the reduced time to timeout and in the different valid instants. In particular, the labelling allows the priority connections to maintain a low latency. Applying more than two different priorities can be implemented by assigning one or more offsets to each priority (e.g. P0={0}, P1={7.5, 15}, P3={22.5, 30,...}). However, some embodiments seek to avoid exceeding the number of offsets on a priority with connections added to that priority (e.g.: P0 has only one offset so should only have one connection assigned, P1 has two offsets so should only have at most two connections assigned,...). A base case of this would be one offset per priority where "Pi = i x 7.5 ms", which allows for explicitly or manually ordering connections and implicitly assigning offsets. A benefit of the novel approaches to determining intervals and offsets disclosed herein is that they can advantageously be implemented by a first radio device to improve QoS with further radio devices even where some or all of the further devices are unaware that the first device is using the novel approach. Instead the further devices may be conventional BLE devices from any manufacturer. The first device, if acting as a central device, may simply communicate a new interval and offset, determined by the selection logic outlined above, to a peripheral device using a conventional BLE Connection Update procedure. If the first device is a peripheral device, it may use the scheduler to arbitrate connection priorities of multiple central devices that it is associated with. However, in some embodiments a central device and a slave device may be specifically configured such that, for instance, either device may use the BLE Connection Parameter Request procedure to decide on a new interval and offset to use. This may advantageously allow multiple offsets to be offered, and thus allow more flexibility because there might be multiple holes in the connection chain that could be filled, or because there might be conflicting connections on the other end. Approaches disclosed herein may enable the selection of both a desired interval and the most suitable offset for both devices. It will be appreciated by those skilled in the art that the invention has been illustrated by describing one or more specific embodiments thereof, but is not limited to these embodiments; many variations and modifications are possible, within the scope of the accompanying claims.

Claims

1. A first radio device configured for radio communication over respective connections of a plurality of connections between the first radio device and a respective plurality of further radio devices, wherein each connection is associated with a respective time series of connection events during which data transmission can occur over the connection and wherein the first radio device can communicate over at most one of the plurality of connections at a time, wherein the first radio device is further configured to schedule radio transmissions over the plurality of connections by: for each of the plurality of connections, periodically incrementing a respective deficit value for the respective connection by a respective quantum, and decrementing the deficit value when data is transmitted over the connection;maintaining a set of scheduled transmission tasks, wherein each scheduled transmission task in the set is associated with a respective one or more connection events of a respective connection of the plurality of connections;processing a first transmission task for a first connection of the plurality of connections, wherein the first transmission task is not in the set of scheduled transmission tasks, to identify one or more first connection events of the first connection for performing the first transmission task;determining if any of the one or more first connection events overlaps in time with a connection event of any second transmission task, for a second connection of the plurality of connections, that is in the set of scheduled transmission tasks; andif an overlap in time is identified, and optionally one or more further conditions are met, determining if the deficit value of the first connection is larger than the deficit value of the second connection, and, if the deficit value of the first connection is larger than the deficit value of the second connection, removing the second transmission task from the set of scheduled transmission tasks and adding the first transmission task to the set of scheduled transmission tasks.

2. The first radio device of claim 1, further configured to store the plurality of connections in a sequence, wherein the one or more further conditions includes that the first connection is at a head of the sequence of connections when the overlap is identified.

3. The first radio device of claim 2, further configured to cycle the sequence of connections at intervals.

4. The first radio device of any preceding claim, further configured, if no overlap in time is identified, to add the first transmission task to the set of scheduled transmission tasks.

5. The first radio device of any preceding claim, wherein each transmission task is associated with a respective task priority level selected from an ordered set of task priority levels, and wherein the one or more further conditions includes that the first transmission task has a priority level that is equal to the priority level of the second transmission task.

6. The first radio device of claim 5, wherein the priority level for each transmission task, at points in time, depends at least in part on how close the respective point in time is to a connection timeout for the respective connection for the transmission task and / or depends at least in part on a type of radio packet indicated for the transmission task.

7. The first radio device of claim 5 or 6, further configured, if an overlap in time is identified, to determine if the first transmission task has a priority level that is higher than the priority level of the second transmission task, and, if the first transmission task has a priority level that is higher than the priority level of the second transmission task, to remove the second transmission task from the set of scheduled transmission tasks and add the first transmission task to the set of scheduled transmission tasks.

8. The first radio device of any of claims 5 to 7, further configured, if the first transmission task has a priority level that is lower than the priority level of the second transmission task, to cancel the first transmission task.

9. The first radio device of any preceding claim, further configured, if an overlap in time is identified and if the first transmission task does not have a priority level that is higher than a priority level of the second transmission task and if the deficit value of the first connection is not larger than the deficit value of the second connection, to cancel the first transmission task.

10. The first radio device of any preceding claim, further configured, if an overlap in time is identified and if the first transmission task does not have a priority level that is higher than a priority level of the second transmission task and if any of the optional one or more further conditions is not met, to cancel the first transmission task.

11. The first radio device of any preceding claim, configured to increment the respective deficit value for each of the plurality of connections by a respective quantum at each connection event of the respective connection.

12. The first radio device of any preceding claim, wherein each respective quantum is a function of the maximum capacity of each connection event of the respective connection, or of the time duration of each connection event of the respective connection.

13. The first radio device of any preceding claim, wherein each respective quantum is a function of a respective weight parameter assigned to the respective connection.

14. The first radio device of any preceding claim, configured to decrement the respective deficit value for each of the plurality of connections for each transmission task or message that is sent or received over the respective connection by an amount of data communicated by the transmission task or the message, or by a time duration of the transmission task or message.

15. The first radio device of any preceding claim, further configured to select arespective connection interval for each of the plurality of connections, being the interval between successive connection events of the respective connection, by:receiving a minimum connection interval parameter and a maximum connection interval parameter for each connection; andusing the received minimum and maximum connection interval parameters to select a respective connection interval for each connection having a duration of K x Nx milliseconds, for a common constant K, a common constant N, and a respective integer x, by determining a respective value for the integer x such that connection interval assigned to the respective connection is no less than the respective minimum connection interval parameter for the connection and is no greater than the respective maximum connection interval parameter for the connection.

16. The first radio device of claim 15, further configured to determine start times for the connection events of each connection of the plurality of connections such that each connection has at least one connection event with a start time that is offset from a start time of a connection event of another connection by exactly K milliseconds.

17. The first radio device of any preceding claim, wherein each connection is associated with a respective connection priority level selected from an ordered set of connection priority levels, and wherein the first radio device is configured to use at least the connection priority level of each connection to determine respective start times of the connection events of the connection, by, when establishing a new connection, using the connection priority level of the new connection to determine whether to offset the start times of connection events of the new connection from the start times of connection events of an existing connection by a negative offset or by a positive offset.

18. The first radio device of any preceding claim, wherein the first radio device is a Bluetooth™ Low Energy device.

19. A method of scheduling radio transmissions over respective connections of a plurality of connections between a first radio device and a respective plurality of further radio devices, wherein each connection is associated with a respective time series of connection events during which data transmission can occur over the connection and wherein the first radio device communicates over at most one of the plurality of connections at a time, the method comprising:for each of the plurality of connections, periodically incrementing a respective deficit value for the respective connection by a respective quantum, and decrementing the deficit value when data is transmitted over the connection;maintaining a set of scheduled transmission tasks, wherein each scheduled transmission task in the set is associated with a respective one or more connection events of a respective connection of the plurality of connections;processing a first transmission task for a first connection of the plurality of connections, wherein the first transmission task is not in the set of scheduled transmission tasks, to identify one or more first connection events of the first connection for performing the first transmission task;determining if any of the one or more first connection events overlaps in time with a connection event of any second transmission task, for a second connection of the plurality of connections, that is in the set of scheduled transmission tasks; and when an overlap in time is identified, and optionally one or more further5 conditions are met, determining if the deficit value of the first connection is larger than the deficit value of the second connection, and, when the deficit value of the first connection is larger than the deficit value of the second connection, removing the second transmission task from the set of scheduled transmission tasks and adding the first transmission task to the set of scheduled transmission tasks.1020. Computer software comprising instructions which, when executed by a processor of a first radio device, cause the first radio device to schedule radio transmissions over respective connections of a plurality of connections between the first radio device and a respective plurality of further radio devices, according to the 15 method of claim 19.

Citation Information

Patent Citations

  • Method and system for resource allocation in broadband wireless networks

    US20010043613A1

  • Logical channel prioritization in a medium access control layer

    WO2019161529A1