Method and apparatus scheduling processing of data portions from multiple data sources
Field of invention
The invention relates to a method and a device for scheduling processing of data portions from multiple data sources by a commonly utilized processing unit
Description of prior art
With the introduction of freely programmable signal processors a performing of different signaling processing tasks within a single hardware unit has become possible. In the context of a telecommunication network said different processing tasks can be e.g. tasks related to different channels or different kinds of tasks such as source or channel encoding or decoding, echo canceling, tone sending or the like.
Data to be processed by a processing unit may be provided as data portions such as data packets or frames. Known kinds data of portions are e.g. an IP (internet protocol) packet, an SDU (service data unit), an ATM (asynchronous transfer mode) frame or an Iu- frame.
In order to schedule processing of data portions from multiple data sources by a processing device that is commonly utilized for said multiple data sources asynchronous and synchronous scheduling is known in the state of the art.
When applying asynchronous scheduling data portions are stored in a FIFO (first in - first out) buffer common to multiple data sources and the data portions are processed in the order in which they have been received in the common FIFO buffer. Data portions from a particular one of the data sources are not received at exactly periodically repeated arrival times but are subject to an arrival jitter. As usually data portions from several data
sources are subject to a certain arrival jitter the order at which the data portions are received in the FIFO buffer may vary. By this the time at which data potions are available for a certain data sink is subject to a delivery jitter, which exceeds the arrival jitter of the data portions from the respective data source. To cope with the delivery jitter a buffer may be introduced downstream to the processing device. The further buffer causes a further buffering delay in addition to the buffering delay of the FIFO buffer. When designing the size of the further buffer, a trade off between buffering delay and delivery jitter has to be found.
I.e. when applying asynchronous scheduling a low delay has to be paid for by a high delivery jitter and a low delivery jitter has to be paid for by a high buffering delay.
When applying synchronous scheduling periodically repeated time slots are reserved for each of the data sources. Data portions from a respective data source are processed within a time slot assigned to the respective data source and processed data portions for the respective data sink are delivered at the end of the respective time slot. When applying synchronous scheduling both delay and delivery jitter may be minimized provided that the arrival times of data portions from different data sources are staggered. However if processing of a particular data portion has not been finished within the reserved time slot the respective data portion has to be dropped. This is particularly relevant if the processing time for data portions from a particular data source is strongly time- varying, e.g. if different kinds of processing tasks are performed for one data source.
In the context of a telecommunications network this may occur, if for a particular channel different data portions have to be processed according to different modes of processing e.g. by either a coding device, an echo canceller or a tone sender all of them implemented on the commonly utilized processing device.
When designing the size of the reserved time slots a trade off has to found between an optimum utilization of the processing device and an acceptable number of dropped data
portions. I.e. when applying asynchronous scheduling, a good utilization of the processing device has to be paid for by a high number of dropped data portions and a low number of dropped data portions has to paid for by a worse utilization of the processing device.
Summary of the invention
Therefore it is object of the invention to overcome the above shortcoming and to provide a method and a device for scheduling processing of different data portions with different processing times that performs well in respect to delay, delivery jitter, drop rate and utilization of the processing device.
This object is achieved by the method of claiml and the scheduling device of claim 6. Advantageous embodiments are described in the dependent claims.
According to the invention a method is provided for scheduling processing data portions from a plurality of data sources by a commonly utilized processing device. Said plurality of data sources may relate to a plurality of transmission channels, i.e. each of said plurality of data sources may relate to a respective transmission channel. The invented method comprises the steps of:
- assigning to a data portion received from a data source a scheduled processing start time,
- scheduling processing a current data portion, - determining a reference time, and
- when processing capacity is available for processing a next data portion, scheduling processing of a data portion with a scheduled processing start time closest to the reference time. Indicating that processing capacity is available for processing the next data portion may be performed by detecting that processing the current data portion has been completed.
The proposed method for scheduling data portions may be utilized if the number of data sources is changed or reconfigured.
The reference time may be determined according to a scheduled processing start time of the current data portion. By this the assignment of a scheduled a processing start time does not need to be synchronized with other devices.
Alternatively or in addition the reference time may be determined using a clocking device.
In a particular embodiment of the invented method processing of data portions from a higher prioritised data source may be prioritised as regards to processing of data portions from a lower prioritised data source.
By this data sources may be related to a respective quality of service class and a requirement on a quality of service may be complied with.
In a further embodiment of the invented method a scheduled processing start time for a data portion from a particular data source is determined using a scheduled processing start time of a previously scheduled data portion from the particular data source and a repetition interval for the particular data source. By this data portions may be scheduled to be processed at a constant rate. By this a jitter of times at which processed data portions are available may also be minimized.
Furthermore according to the invention a scheduling device is provided for scheduling processing data portions from a plurality of data sources by a commonly utilized processing device. The scheduling device comprises:
- a data portion queue for temporarily storing the data portions to be processed by the processing device - an assignment unit for assigning to a data portion received from a data source a
scheduled processing start time,
- a scheduling unit for scheduling processing of a current data portion to be processed,
- a timing unit for determining a reference time, and
- a supervising unit for detecting that processing capacity is available for processing a next data portion, wherein the scheduling unit is adapted to schedule processing of a data portion with a scheduled processing start time closest to the reference time when processing capacity is available for processing a next data portion. Detecting that processing capacity is available for processing a next data portion may be performed by detecting that processing the current data portion has been completed.
The timing unit may be adapted to determine the reference time according to a scheduled processing start time of the current data portion. By this the assignment of a scheduled processing start time does not need to be synchronized with other devices.
Alternatively or in addition the timing unit may be adapted to determine the reference time using a clocking device.
In a particular embodiment of the invented method of the scheduling device the scheduling unit may be adapted to prioritise processing of data portions from a higher prioritised data source as regards to processing of data portions from a lower prioritised data source.
By this data sources may be related to a respective quality of service class and requirements to a quality of service class may be complied with.
The assignment unit may be adapted to assign a scheduled processing start time for a data portion from a particular data source according to a scheduled processing start time of a previously scheduled data portion from the particular data source and a repetition interval for the particular data source.
By this data portions may be scheduled to be processed at a constant rate. By this a jitter of times at which processed data portions are available may also be minimized.
Brief description of the drawings
Figure 1 depicts a plurality of units that are used for the processing of data portions according to the invention.
Figure 2 depicts a scheduling device according to the invention.
Figure 3 depicts a sequence of processing steps to be performed when embodying the invention.
Detailed description of preferred embodiments
Figure 1 depicts a plurality of units that are used for the processing of data portions according to the invention. In particular the embodiment of figure 1 comprises n data sources Cl, C2 ... Cn of which a first, a second and an nth data source Cl, C2, and Cn are depicted. The first to nth data source Cl, C2, ... Cn may each relate to a transmission channel, via which data portions are transmitted towards the processing unit PU, that is commonly utilized for the first to nth data source Cl, C2, ... Cn. The first to nth data source Cl, C2 ... Cn may be data sources of different kind or data sources of the same kind.
The first to nth data source Cl, C2 ... Cn are repeatedly outputting data portions to be processed by the processing unit PU. The data portions for a particular one of the first to nth data source Cl, C2 ... Cn may be data portions of different kind and the processing tasks to be performed on the data portions may be different kinds of processing tasks. To provide processing of data portions from the various data sources according to different modes of processing by the commonly utilized processing unit PU for each of the modes
of processing a respective software instance may be provided to be executed by the commonly utilized processing unit PU.
The data portions may be e.g. speech data portions comprising speech data or control data portions related to a speech channel and the processing tasks to be performed on the data portions may relate to a tone sending, an echo canceling, or an encoding, decoding or transcoding of speech data transmitted within said data portions. In particular the processing times for processing a data portion may be different for different data portions to be processed by the processing unit PU.
According to an embodiment of the invention data portions to be processed by the processing unit PU are received from one of the first to nth data source C 1 , C2, ... Cn in a first buffer B 1 that is controlled by a control unit CU. The first buffer may apply the FIFO (first in - first out) principle, i.e. the first buffer may be adapted to output the received data portions in the order in which they have been received in the first buffer Bl.
The control unit is adapted to assign to each of the data portions received from a particular one of the first to nth data source Cl, C2 ... Cn a respective scheduled processing start time. The scheduled processing start time for a first data portion received after an initialisation phase of the processing device PU may be determined according to a current time and an initial delay.
The scheduled processing start time for a further data portion may be determined according to a scheduled processing start time of a previously scheduled data portion from the particular data source and a repetition interval assigned to the particular data source. Said repetition interval may be defined according to the type of the data source, e.g. 20 milliseconds for a UMTS speech channel.
The delivery time for a data portion from a particular channel may be calculated after the processing unit PU has executed a processing task for the particular channel.
The control unit CU controls the first buffer Bl and a second buffer B 2 to copy data portions from the first buffer B 1 to the second buffer B2. The second buffer may be arranged such that the data portions stored in the second buffer are sorted according to the scheduled processing start time of the data portions. To that end the second buffer may be implemented as a linked list. By this scanning the second buffer B2 for a most urgent data portion may be avoided. Data portions in the second buffer B2 may be rescheduled when a data portion is copied from the first buffer B 1 to the second buffer B2.
Alternatively the second buffer B2 may be a freely accessible memory and the control unit CU may hold a table assigning an indication of a data portion with the scheduled processing start time of that data portion. In that embodiment data portions must be accessible from the second buffer B2 according to their indication kept in the control unit.
For scheduling processing a data portion a reference time is determined. Said reference time may be determined using a clocking device. Furthermore said reference time may be determined according to a processing status of the processing device PD. E.g. the reference time may be determined when the processing device starts processing of a data portion. Alternatively the reference time may be determined when the processing device has completed processing a data portion. Alternatively the reference time may be determined according to a scheduled processing start time of a currently processed data portion.
When processing the current data portion has been completed so that processing capacity is available for processing a next data portion, the control unit CU schedules processing of a data portion with a scheduled processing start time closest to the reference time.
I.e. if the scheduled processing start time of the current data portion has been used as reference time and the data portions are stored in the second buffer B 2 in the order of their respective scheduled processing start time, the data portions may be processed by the processing unit PU in the order in that they have been stored in the second buffer B2.
Alternatively if the second buffer is freely accessible the control unit CU may determine according to the list of scheduled processing starts the data portion with the scheduled processing start time closest to the reference time and initiate processing of this determined data portion by the processing unit.
The data portion to be processed next may be copied to the processing device and deleted from the second buffer B2. The control unit CU may control the first buffer B 1 and the second buffer B2 such that available data portions are copied from the first buffer Bl to the second buffer B2. Advantageously all available data portions are copied from the first buffer Bl to the second buffer B2. By this capacity for receiving further data portions may be provided in the first buffer B 1.
When applying the above described scheduling method, a particular one of the first to nth data source Cl, C2 ... Cn may be prioritized compared to another one of the data sources. This may e.g. apply if transmission channels of a different quality of service classes are assigned to the first to nth data source Cl, C2 ... Cn. In this embodiment the data portion scheduled to be processed next may be first determined within the data portions received from data sources with a high priority.
In the embodiment of the prioritisation of the data portions the scheduled processing start time of a highly prioritised data portion may be interpreted as a deadline for processing that data portion and processing of a previously scheduled data portion may be terminated when the deadline for processing the prioritised data portion is about to expire.
The reception of data portions from a particular data source may be supervised by the control unit CU.
Outputting data portions that have been processed by the processing device may be triggered by an output scheduler OS downstream to the processing unit PU.
In order to minimize or avoid a jitter of delivery times of processed data portions, the output scheduler OS may store processed data portions and output the processed data portions at previously scheduled delivery times. Delivery times may be determined from previous delivery times and a repetition interval that is common for a particular data sink towards that processed data portions are transmitted.
The first delivery time for a particular data source and a respective data sink may be determined according to a reception time of a first data portion received from the respective data source.
Determining the first delivery time for a data portion to be delivered towards the respective data sink may take into account an expected input jitter, a latency due to the scheduling process, and an expected processing time. The first delivery time may be e.g. determined as the reception time of the first data portion increased by the sum of the input jitter, the expected latency due to the scheduling process and the expected processing time.
The input jitter relates to an expected jitter of reception times of data portions received from the particular data source.
The expected input jitter may be configured or determined from a measurement of an actual input jitter from the past.
The latency due to the scheduling process takes into account an expected delay due to data portions that are scheduled to be processed simultaneously. E.g. if a certain number
of data portions have been scheduled to be processed simultaneously, the expected delay due to the simultaneous scheduling related to the sum of the processing times of the simultaneously scheduled data portions.
Figure 2 depicts a scheduling device SD according to the invention. The scheduling device SD may be implemented in hardware in software or in a combination thereof. The scheduling device SD is provided for scheduling processing data portions from a first to nth data source DSl, DS2 ... DSn by a commonly utilized processing device PD, to which the scheduling device SD is connected to. The first to nth data source DSl, DS2 ... DSn may e.g. relate each to a respective transmission channel via which the data portions are transmitted towards the processing device.
The scheduling device SD comprises a data portion queue DPQ connected to the first to nth data source DSl, DS2 ... DSn for receiving data portions from the first to nth data source for DSl, DS2 ... DSn. The data portion queue DPQ is provided for temporarily storing the data portions received from the first to nth data source for DSl, DS2 ... DSn. The scheduling device SD further comprises an assignment unit AU, a timing unit TU, a scheduling unit SDU and a supervision unit SVU, all of them interconnected among each other and connected to the data portion queue DPQ. The supervision unit SVU is further connected to the processing device PD for supervising the processing device PD. The assignment unit AU is adapted to assign to each data portion received from the first to nth data source for DSl, DS2 ... DSn a respective scheduled processing start time. To that end the assignment unit AU may be adapted to assign a scheduled processing start time for a data portion from a particular data source according to a scheduled processing start time of a previously scheduled data portion from the particular data source and a repetition interval for the particular data source.
The scheduling unit SDU is adapted to schedule processing of a current data portion to be processed. This may be provided in that the scheduling unit SU selects within the data
portions stored in the data portion queue that data portion the current data portion to be processed next.
The timing unit TU is adapted to determine a reference time. To that end the timing unit TU may be adapted to determine the reference time according to a scheduled processing start time of the current data portion or the timing unit TU may be adapted to determine the reference time using a clocking device. The clocking device may be a device external to the timing unit or be comprised in the timing unit TU.
The scheduling device SD further comprises a supervising unit SVU for detecting that processing capacity is available for processing a next data portion. This may be achieved in that the scheduling device detects that processing the current data portion has been completed. To that end the supervision unit SVU may be adapted to receive from the processing device a signal indicating that processing the current data portion has been completed.
The scheduling unit SDU is adapted to schedule processing of a data portion with a scheduled processing start time closest to the reference time when processing capacity is available for processing a next data portion. This may be performed upon detecting that processing the current data portion has been completed.
The scheduling unit SDU may be adapted to prioritise processing of data portions from a higher prioritised data source as regards to processing of data portions from a lower prioritised data source.
Figure 3 depicts a sequence of method steps that may be performed when carrying out the invention. The depicted method is provided for scheduling processing data portions from a plurality of data sources by a commonly utilized processing device. In a first step SI a processing start time is assigned to data portions received from the data sources, wherein the processing start time indicates when processing the respective data portion is
scheduled. In a second step S2 processing a current data portion is scheduled. In a third step S3 a reference time is determined. The reference time may be determined according to a scheduled processing start time of the current data portion or the reference time may be determined using a clocking device. In a fourth step S4 it is detected that processing capacity is available for processing a next data portion. This may be performed in that it is detected that processing the current data portion has been completed. According to the fourth step S4, i.e. when processing capacity is available for processing a next data portion processing of a data portion with a scheduled processing start time closest to the reference time is scheduled in a fifth step S5.