EP2313827A1 - Method and system for measuring task load - Google Patents

Method and system for measuring task load

Info

Publication number
EP2313827A1
EP2313827A1 EP09763595A EP09763595A EP2313827A1 EP 2313827 A1 EP2313827 A1 EP 2313827A1 EP 09763595 A EP09763595 A EP 09763595A EP 09763595 A EP09763595 A EP 09763595A EP 2313827 A1 EP2313827 A1 EP 2313827A1
Authority
EP
European Patent Office
Prior art keywords
task
cycles
audio task
audio
reference interval
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
EP09763595A
Other languages
German (de)
French (fr)
Other versions
EP2313827B1 (en
Inventor
Alex Kwang-Ho Jong
Balam Subhash Chandra Yadhav
Paruchuru Ravi Kishore
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of EP2313827A1 publication Critical patent/EP2313827A1/en
Application granted granted Critical
Publication of EP2313827B1 publication Critical patent/EP2313827B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

A method for determining the task load in real-time. The method takes a difference in real-time between a first count value from a free running counter prior to a task executing, and a second count value after the task stops running. The task load may then be determined by using an accumulator to accumulate the difference between the first count value and the second count value over a reference interval and dividing the sum by a configurable reference interval. The individual task load computed in realtime may be used in scheduling an audio task.

Description

Method and System For Measuring Task Load
RELATED APPLICATIONS
[0001] This application is related to and claims priority from U.S. Provisional Patent Application Serial No. 61/060,532, filed June 11, 2008, for METHOD AND SYSTEM FOR MEASURING TASK LOAD, which is fully incorporated herein by reference.
FIELD OF DISCLOSURE
[0002] The described embodiments generally relate to real time computing. More particularly, the described embodiments relate to measuring one or more task loads that can be used to regulate an application's load on the system.
BACKGROUND
[0003] FIG. 1 generally describes prior art of a real time computing system. A real time computing system controls the execution of application programs and interfaces to the system hardware and utilities. A real time computing system 103 may be hosted on electronic hardware 101 such as a processor, or a digital signal processor. As an example, hardware may be hardware on a mobile phone or hardware on any device having embedded software or firmware. The utilities 105 are commonly programs that assist the computing system in control of input/output devices, and management of files.
[0004] In such applications, it is useful knowing the load on real time computing system from one or more individual tasks for system design considerations or as an input parameter to other applications 107 that may utilize the task load information. A prior art approach to determine the loading of a task is to capture the task execution data using a logic analyzer and count the instructions executed on the particular individual task. This approach is not real-time and therefore does not allow the task load to be used as input to another application that may effectively use the information. For example, a Musical Instrument Digital Interface (MIDI) application may use the realtime task load to determine whether to reduce the MIDI voices processed for a future frame. SUMMARY
[0005] Embodiments disclosed in the detailed description include determining a number of task execution cycles to compute a task load. Determining the number of task execution cycles comprises reading a first count value from a free running counter prior to a task executing, reading a second count value from the free running counter after the task stops running, and taking a difference in real-time between the first count value and the second count value. The task execution cycles may be accumulated over a reference interval. The reference interval may be a configurable value. The task load may be determined by using an accumulator to accumulate the differences between the first count value and the second count value over a reference interval and dividing the sum by the reference interval.
[0006] Another embodiment includes scheduling an audio task. Scheduling an audio task comprises establishing a reference interval over which to process an audio task in a current frame and computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval and scheduling parameters for a future audio task. A number of cycles available for processing the future audio task may be computed based on a task load of the audio task and based on the actual number of cycles to process the audio task. A number of cycles available for processing the future audio task may be computed by taking the number of cycles in the reference period (MaxCycles) and subtracting the number of cycles used in processing the current audio task (ActualCycles) and adding the number of cycles used in processing the audio task within the reference interval in a current frame (Accumulated Task Execution Cycles). An exemplary embodiment is where the scheduling parameters are synthesis voice parameters in an audio frame. The reference interval may be configurable via hardware or software. The computed difference is based on a conversion between time and cycles. Exemplary embodiments of scheduling include processing less audio frame parameters for the future audio task relative to the current audio task, or processing an equal or greater number of audio frame parameters for the future audio task relative to the current audio task. The number of cycles available for processing the future audio task may be zero when a maximum number of audio frame parameters are processed or may be zero during power-on of a processor. [0007] Another embodiment is an apparatus comprising a processor for computing the difference between the actual time to process an audio task and the number of cycles in a reference interval, and scheduling a future audio task based on the computed difference. A memory stores the scheduling parameters and a free running counter provides at least two count values to the processor to compute the actual time of the audio task.
[0008] Another embodiment is an apparatus comprising a means for retrieving a reference interval over which to process an audio task in a current frame, a means for computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval, and a means for scheduling parameters for a future task.
[0009] Another embodiment is a computer-readable medium embodying a set of instructions executable by one or more processors. The computer-readable medium comprises code for retrieving a reference interval over which to process an audio task, code for computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval, and code for scheduling parameters for a future audio task.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram illustration of a real time computing system.
[0011] FIG. 2 is a block diagram exemplary embodiment of a real time computing system that measures a task load in real time.
[0012] FIG. 3 is a flowchart illustrating a method that may be run on a host processor.
[0013] FIG. 4 is a graphical illustration of various timing scenarios that can occur within a real time computing system during processing of application tasks.
[0014] FIG. 5 is a block diagram of an exemplary embodiment of a multi-processor system.
[0015] FIG. 6 is a block diagram of an exemplary illustration of an audio device. [0016] FIG. 7 is a graphical illustration of the timing in an exemplary embodiment of an audio task that utilizes the task load in calculations to estimate the time or cycles available for processing of audio tasks in the next frame.
[0017] FIG. 8 is a flowchart illustrating a method of determining a task load.
[0018] FIG. 9 is a flowchart illustrating a method of scheduling an audio task.
DETAILED DESCRIPTION
[0019] Various embodiments are disclosed herein the following description and related drawings. Alternate embodiments may be devised without departing from the scope of the invention. Additionally, some well known elements of the invention will not be described in detail or will be omitted so as not to obscure the relevant details of the invention.
[0020] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments. Likewise, the term "embodiments of the invention" does not require that all embodiments of the invention include the discussed feature, advantage or mode of operation.
[0021] The term "real time computing system" is used herein to mean, but not limited to, processing at least one task in real time using a scheduling system.
[0022] FIG. 2 is an exemplary embodiment of a host processor 210 running a real time computing system 230. The computing system 230 reads and stores the value output from a free running counter 225 at particular intervals. The term "free running counter" is used herein to mean a counter or other reference source that remains running during low power mode, and/or during host processor sleep state. Those skilled in the art will appreciate that reference sources such as a software counter or a hardware counter may be used without departing from the spirit and scope of the representative embodiments. The free running counter 225 may be physically located inside the processor or outside of the processor. [0023] A host processor 210 running a real time computing system 230, processes application tasks 205. Tasks are processed by the task scheduler 215, which decides when the processor 210 is available and when a task is ready for processing. An interrupt handler 220 may be used to interrupt tasks 205 that are currently being executed by the processor 210. Interrupted tasks 205 are managed by the task scheduler.
[0024] FIG. 3 is a flowchart illustrating an exemplary method that may be run on a host processor 210. Scheduling of tasks 340 may be implemented via numerous schemes. Such schemes, may include, but are not limited to, preemptive schemes and time sharing schemes. Pre-emptive schemes allow the task with the highest assigned priority to be executed first. The pre-emptive scheme may interrupt another lower priority task being processed in order to execute the higher priority task. Time sharing designs execute tasks on a clock interrupt schedule where time slices for processing are allocated to each task until all tasks are complete.
[0025] If there are any tasks available to be run (see block 330), a task is scheduled 340 and sent to be processed 345, for example, to a host processor 210. As other tasks become ready for execution and while the host processor is busy executing a current task, the task scheduler 340 will determine whether to preempt the current task 350. Interrupts may be decided based on scheduling scheme or for other considerations.
[0026] If the current task is not interrupted, the host processor continues executing the current task 345 until the task is completed 360. If the completed task is not an audio task 358, the host processor begins processing the next task at block 330. If the completed task is an audio task 358, then scheduling a future audio task may be performed 359. Upon completion of block 359 or alternatively concurrently with execution of block 359, the host processor begins processing the next task at block 330. Scheduling an audio task is discussed later.
[0027] When an interrupt occurs 350, the interrupt is processed 355. One of ordinary skill in the art may as an example, design the system to save the state of the task being processed or perform other clean-up prior to halting the interrupted task. Therefore, the interrupted task may or may not halt processing immediately upon receiving an interrupt. The task scheduler 340 continues to manage tasks that have not completed execution. Once the current task is halted and the host processor is available, the host processor begins executing the next scheduled task.
[0028] When block 330 detects there are no tasks ready to be run and block 345 detects there are no tasks being processed, the computing system may enter into sleep state in block 335. During sleep state, the host processor is idle and may reduce or disable its power consumption. The free running counter 225 will continue to count during the sleep state. Upon receiving an interrupt, the processor's sleep state is interrupted 365, thus waking from sleep state and increasing its power consumption. The task scheduler 340 schedules any tasks ready for execution, and the task is processed 345.
[0029] FIG. 4, timelines 400, 405, and 410 are an illustration of various timing scenarios that can occur within a real time computing system during processing of application tasks. In these illustrations, time increases from Tx to Ty in FIG. 4.
[0030] The term "reference interval" may be defined as a period of time or described as a corresponding number of cycles, as measured by the free running counter 225. The reference interval may be described by variables X and Y, where X denotes the start point of the reference interval, and Y denotes the end point of the reference interval 420 over a period.
Reference interval = Tγ_ Tx (Eq. 1)
FIG. 4, element 400 illustrates an exemplary method of measuring task load running on a computing system. Prior to the execution of a scheduled task, the computing system will read the value from the free running counter 225; the value is defined as Tstart. The scheduled task is then executed until it is halted. The task is halted upon completion of its execution, or upon being preempted by another task. Once the task is halted, the real time computing system will read the value from the free running counter, the value is defined as Tend- Examples of Tstart and Tend are shown in element 400. The term, "task execution cycles" is defined by taking the difference between Tend and Tstart and is shown in Equation 2. A person of ordinary skill in the art may perform taking such a difference through software or through hardware.
Task Execution Cycles = Tend - Tstart (Eq. 2) [0031] The task execution cycles may be accumulated over a reference interval previously defined over interval X, Y 420, as shown in Equation 3. An exemplary embodiment to accumulate the task execution cycles, is using a hardware or software accumulator element with sufficient bits to avoid overflow during the reference interval. This hardware or software accumulator is herein referred to as "accumulator". As a further exemplary embodiment, the accumulator may be implemented in the computing system or may be an accumulator external to the computing system. n n
Accumulated Task Execution Cycles = ∑ ( Tend - Tstart) (Eq. 3) n=X
[0032] The load of each task may be determined by dividing the accumulated task execution cycles by the reference interval, as shown in Equation 4. Those of ordinary skill in the art will appreciate that this computation may be applied to any task to compute its load. γ Task Load = ∑ ( Tend - Tstart) (Eq. 4) n=X
TY - TX
[0033] FIG. 8 is a flowchart illustrating a method of determining a task load. The reference interval is configured and stored 810. As discussed previously, exemplary illustrations of configuration are configuring the reference interval via software and storing the value in memory, or via hardware configuration. Prior to a task executing, a first count value is read from the free running counter 820. After the task stops running, a second count value is read from the free running counter 830. A processor may take the difference in real time between the first count value and the second count value 840. An exemplary illustration of taking a difference in real time between the first and second count values is seen in Equation 2, where the difference may be taken via hardware or software methods. An accumulator may accumulate the difference between the first count value and the second count value over the configured reference interval 850. An exemplary illustration of accumulating the difference between count values is seen in Equation 3, where the accumulator may be implemented in hardware or software. The task load may be computed 860 by dividing the accumulated difference by the reference interval. An exemplary illustration of computing the task load is seen in Equation 4, where the computation may occur in hardware or software.
[0034] One of ordinary skill in the art will understand the determined task load may be applied in an electronic device, selected from a group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer, into which the method of determining the task load is integrated.
[0035] One of ordinary skill in the art may use the task load for various purposes such as system design considerations or as an input parameter to other applications that may utilize the task load information. For example, when a high priority task is being executed, another application may use the task load information to limit the computing system's loading. An exemplary embodiment for utilizing the task load will be discussed later in this document.
[0036] The reference interval may be configured and stored. The reference interval may be configured such that there is sufficient resolution to accurately accumulate task execution cycles over a reference interval. As an illustration, the reference interval may be configured to a value less than the following: the period of the free running counter multiplied by the maximum count value of the accumulator. The configurable reference interval may be configured via software or hardware. For example, a reference interval may be configured by software and the reference interval stored in memory that is read by a processor. Alternatively, the reference interval may be configured in hardware. An exemplary illustration of a hardware configuration is setting a latch or flip flop with the value of the reference interval.
[0037] Additionally the free running counter as shown at 225 may be set by a person of ordinary skill in the art, to a frequency great enough to capture the task execution cycles accurately. [0038] FIG. 5 is an exemplary embodiment of a multi-processor system. The multiprocessor system may be connected to an individual or shared free running counter. An individual task load may be calculated as discussed and by utilizing Equations 1-4. As an example, any task running on any of the processors in FIG. 5, may compute a task load.
[0039] FIG. 6 is an exemplary illustration of an audio device 600. An audio device may be a device capable of processing any type of audio or video files, for example voice, or Musical Instrument Digital Interface (MIDI) files. An audio device 600 may include an audio storage unit 605 that stores MIDI files and other types of data. The audio storage unit 605 may comprise any type of volatile or non- volatile memory or storage coupled to processor 610.
[0040] Audio device 600 also includes a first processor 610 and a second processor 630 operating together to process audio files to generate audio information for an end user. FIG. 6 illustrates an architecture that separates the audio tasks between the first processor 610, and second processor 630. One of ordinary skill in the art may appreciate other alternative implementations such as combining elements 610 and 630 into a single unit such that one processor performs the functionality of elements 610 and 630. As an example, first processor 610 may be an ARM processor and second processor 630 may be a digital signaling processor (DSP). As another example, where a single processor performs the combined functionality of 610 and 630, the single processor may perform both processing and digital signal processing.
[0041] In an exemplary embodiment, the first processor 610 and second processor 630 process audio tasks over a reference interval. As used herein, the phrase "audio frame" refers to a block of time or a corresponding number of clock or counter cycles. An audio frame may be the reference interval over which an audio task is processed.
[0042] The reference interval may be selected to be equal to a 10 millisecond (ms) interval. The reference interval may have 480 samples for a device operating at a sampling rate of 48KHz. A person of ordinary skill in the art will recognize that an audio wave form can be sampled at different rates, one such sampling rate may be 48Khz. The desired maximum number of cycles for a processor to process one audio task will herein be referred to as MaxCycles. MaxCycles is essentially the reference interval time, converted into cycles. This value is computed in Equation 5 below.
MaxCycles = (Clock Frequency) x (Reference Interval) (Eq. 5)
A sample calculation where the clock frequency = 19.2MHz gives: MaxCycles = (19.2MHz) x (10 millisecond) = 192,000 cycles
[0043] Processor 610 may read from and write data to audio storage 605. Additionally, processor 610 may read data from and write data to a memory unit 615. As an example, processor 610 may read MIDI files from audio storage 605 and write MIDI files to memory unit 615. For each audio frame, processor 610 may retrieve one or more of the MIDI files and parse the MIDI files to extract one or more MIDI instructions. The MIDI instructions comprise various parameters including MIDI voices that require processing. The MIDI instruction parameters may instruct a particular MIDI voice to start or stop, relate to aftertouch effects, breath control effects, program changes, pitch bend effects, control messages such as pan left or right, sustain pedal effects, main volume control, system messages such as timing parameters, lighting effect cues, and or other sound affects. A "voice" or a "MIDI voice" can be any particular sound.
[0044] Based on the timing of the MIDI instructions, first processor 610 schedules
MIDI instructions for processing by the second processor 630. The first processor 610 may provide the scheduling of MIDI instructions to memory unit 615 for access by second processor 630 so that second processor 630 can process the MIDI instructions. Alternatively, first processor 610 may execute the scheduling by dispatching the MIDI instructions directly to second processor 630 in a time synchronized manner. In an exemplary model, the first processor 610 processes and stores the synthesized Pulse Code Modulated (PCM) audio samples in Memory Unit 650. The Digital-to-Analog Converter (DAC) 625 takes the PCM samples from 650 and plays the samples out to speaker 640.
[0045] Second processor 630 processes the MIDI instructions according to the scheduling created by first processor 610. However, second processor 630 may also have other higher priority tasks that may require processing prior to executing the MIDI instructions and therefore the processing of an audio task may take longer than the MaxCycles or reference interval. These types of interruptions may cause a future audio task to also exceed the MaxCycles or reference interval. First processor 610 may utilize a method of scheduling the next or future audio task such that the processing of a future audio task does not take longer than the MaxCycles or reference interval. As an illustration, this may be accomplished by reducing the number of voices processed. The number of voices that are reduced is proportional to the number of cycles exceeded when processing the prior audio task. This is discussed further in the context of Equation 12.
[0046] FIG. 7 illustrates an exemplary processing of audio task 710, and the interruption of the audio processing when higher priority tasks such as Task N 700, or Task N+l 705 interrupt the currently executing audio task. The audio task 710 may utilize the task load (Eq. 4) in calculations discussed below, to aid in the scheduling of the processing of audio tasks in the next frame.
[0047] To synthesize a higher number of MIDI voices for rich sound quality it is desirable for the processing of a single audio task to complete within one reference interval 420. During periods where the audio processing is interrupted for processing of other higher priority tasks, the processing of the audio task may not be completed within the MaxCycles or reference interval, but may continue being processed into the subsequent reference interval. To offset this additional time, a number of voices may be reduced from the next audio task to be processed so that the next audio task is more likely to complete processing within the reference interval. A person of ordinary skill in the art, will recognize this embodiment may be used to reduce a number of voices from any future audio task without departing from the spirit and scope of this exemplary embodiment.
[0048] Scheduling parameters for a future audio task may be established. That is, the number of voices processed in the next audio task or a future audio task may be reduced, if processing of the current audio task exceeded the reference interval or MaxCycles, that is, if there was processing "carry-over" into the next reference interval. Herein, the term "carry-over" is used to indicate the number of cycles an audio task has exceeded the MaxCycles. However, herein, "carry-over" may also indicate the number of cycles available when an audio task completes processing before reaching the MaxCycles. At other times, the "carry-over" value may be zero such as upon power-on of the device employing this method. Power-on typically means it may take some time for the audio application to reach a steady state. The "carry-over" value may also be zero when the audio task was processed within the same number of cycles as the MaxCycles period.
[0049] To determine the carry-over cycles, MaxCycles may be subtracted from the actual number of cycles the audio task took to process as shown in Equation 6, where the MaxCycles value may be computed using Equation 5. ActualCycles is the total number of cycles it takes to complete processing the audio task including interrupt time. A person of ordinary skill in the art will recognize that units of time may be converted to cycles by multiplying the unit of time times the counter or clock frequency, and units of cycles may be converted to units of time by multiplying the number of cycles times the inverse of the counter or clock frequency. Therefore, the interrupt time is the time the processing of the audio task was interrupted while the processor processed other tasks or the number of equivalent cycles. A person of ordinary skill in the art will also recognize that CarryOverCycles may be determined by other methods without departing from the spirit of this exemplary embodiment. For example, CarryOverCycles may also be calculated by a modification of Equation 6, that is by subtracting ActualCycles from MaxCycles. For the purposes of clarity, Equation 6 will be used in this document.
CarryOverCycles = ActualCycles- MaxCycles (Eq. 6)
[0050] As an example, ActualCycles may be determined by utilizing the free running counter 225 to measure the processing start and end points for a given audio task and by taking the difference between them. This concept is illustrated in Equation 7. A person of ordinary skill in the art will appreciate other methods to measure ActualCycles without departing from the spirit of this exemplary embodiment.
ACtUalLy yCleS I processsing end " 1 processing start U-O/ ' /
A sample calculation where the MaxCycles = 192,000 cycles and ActualCycles for the audio task is 249,600 cycles or 13 milliseconds, gives: CarryOverCycles = 249,600 cycles - 192,000 cycles = 57,600 cycles
[0051] In the context of Equation 6, when the CarryOverCycles value is zero or less than zero, processing of the audio task has not exceeded MaxCycles, and therefore the next audio task or future audio task may be processed without reducing voices for processing or may reduce the voices for processing. When the CarryOverCycles value is greater than zero, the number of cycles used to process the audio task has exceeded reference interval 420 or the corresponding MaxCycles, and voices may be reduced from the next or future audio processing so that the processing of said audio task is more likely to complete within its reference interval or MaxCycles.
[0052] If the carry-over is greater than zero, that is, if the current task took longer to execute than the period defined by the reference interval 420 or MaxCycles, then the number of voices to be reduced when processing the next or future audio task may be calculated or scheduled using parameters from the current task. To determine the number of cycles available for processing of the next or future audio task, certain parameters from the current audio task may be subtracted or added to the value of MaxCycles for the next or future audio task. These parameters include the time or number of cycles the processor spends processing higher priority tasks other than the audio task and the CarryOverCycles. Herein, the number of cycles the processor spends processing tasks other than the audio task will be called "OtherTasks". Equation 8 illustrates the number of cycles available for processing of the next audio task or future audio task.
NumCyclesAvailable = MaxCycles - OtherTasks - CarryOverCycles (Eq. 8)
[0053] An exemplary illustration to calculate OtherTasks is to subtract from
ActualCycles, the CarryOverCycles as given in Equation 7, and the accumulated task execution cycles as given in Equation 3. A person of ordinary skill in the art will recognize other methods to determine OtherTasks without departing from the spirit of this exemplary embodiment.
OtherTasks = ActualCycles- CarryOverCycles - Accumulated Task Execution Cycles (Eq. 9) [0054] A person of ordinary skill in the art will understand that Equations 8 and 9 may be simplified into Equation 10.
NumCyclesAvailable = MaxCycles - ActualCycles + Accumulated Task Execution Cycles (Eq. 10)
[0055] The number of voices that may be supported for the next or future audio task, herein referred to as "MaxVoiceCount" is equal to the number of cycles available for the next or future audio task multiplied by the voice count divided by the number of cycles the processor spends synthesizing or decoding the previous audio task. This concept is illustrated in Equation 11. The parameter "voice count" may be contained in the audio task. The parameter "tsynth", may be measured by any counter from the time the voice synthesis begins, to the time the voice synthesis is completed for a given audio task.
MaxVoiceCount = NumCyclesAvailable x (voice count / tsynth) Eq. 11
[0056] As discussed previously, the number of voices that are reduced from the processing load may be computed. The number of voices that are reduced is proportional to the number of cycles exceeded when processing the prior audio task. For example, to calculate the number of voices that are reduced, the CarryOverCycles is multiplied by the voice count divided by tsynth. One of ordinary skill will recognize that the result of the aforementioned calculation may be rounded up so that a whole number of voices is reduced.
NumVoicesReduced = CarryOverCycles x (voice count / tsynth) Eq. 12
[0057] FIG. 9 is a flowchart illustrating a method of scheduling an audio task. The reference interval is retrieved 910. As previously discussed, the reference interval may be stored and configured via software or hardware. Also the reference interval may be configured to a value that provides resolution to accurately accumulate task execution cycles. The difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval is computed 920. An exemplary illustration of computing the difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval is seen in Equation 6 where CarryOverCycles is computed. The computed difference (e.g. CarryOverCycles) may be used to determine scheduling parameters for a future audio task 930. For example, a number of voices to be processed in a future audio task may be reduced if the number of actual cycles to process the audio task in the current frame is greater than the number of cycles in the reference interval.
[0058] One of ordinary skill in the art will understand the method for scheduling an audio task may be applied in an electronic device, selected from a group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer, into which the method of scheduling an audio task is integrated.
[0059] The implementations of methods, schemes, and techniques disclosed herein may also be tangibly embodied (for example, in one or more computer-readable media as listed herein) as one or more sets of instructions readable and/or executable by a machine including an array of logic elements (e.g., a processor, microprocessor, microcontroller, or other finite state machine). In one or more exemplary embodiments, the operations described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, such operations may be stored on or transmitted over a computer-readable medium as one or more instructions or code. The term "computer-readable media" includes both computer storage media and communication media, including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer- readable media can comprise an array of storage elements, such as semiconductor memory (which may include without limitation dynamic or static RAM, ROM, EEPROM, and/or flash RAM), or ferroelectric, magnetoresistive, ovonic, polymeric, or phase-change memory; CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray DiscTM (Blu-Ray Disc Association, Universal City, CA), where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. A method of determining a task load comprising: reading a first count value from a free running counter prior to a task executing; reading a second count value from the free running counter after the task stops running; taking a difference in real time between the first count value and the second count value; using an accumulator to accumulate a difference between the first count value and the second count value over a reference interval; and dividing the accumulated difference by the reference interval.
2. The method of claim 1, wherein the reference interval is configured to a value equal to or less than a period of the free running counter multiplied by a maximum count value of the accumulator.
3. The method of claim 1, wherein the determined task load is applied in an electronic device, selected from a group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer, into which the method of determining the task load is integrated.
4. A method for scheduling an audio task comprising: retrieving a reference interval over which to process an audio task; computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval; and scheduling parameters for a future audio task.
5. The method of claim 4, further comprising: computing a number of cycles available for processing the future audio task based on a task load of the audio task and based on the actual number of cycles to process the audio task.
6. The method of claim 4, further comprising computing a number of cycles available for processing the future audio task by NumCyclesAvailable.
7. The method of claim 4, wherein the scheduling parameters are synthesis voice parameters in an audio frame.
8. The method of claim 4, wherein the reference interval is configurable via hardware or software.
9. The method of claim 4, wherein the scheduling comprises processing less audio task cycles for the future audio task than processed in the current audio task.
10. The method of claim 4, wherein the scheduling comprises processing an equal or greater number of audio task cycles for the future audio task relative to the current audio task.
11. The method of claim 4 wherein the method for scheduling an audio task is applied in an electronic device, selected from a group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer, into which the method of scheduling an audio task is integrated.
12. An apparatus comprising: a processor for computing a difference between an actual time to process an audio task and a the number of cycles in a reference interval, and scheduling a future audio task based on the computed difference; a memory for storing the scheduling parameters; and a free running counter to provide at least two count values to the processor to compute the actual time of the audio task.
13. The apparatus of claim 12, wherein the processor is configured to run a real time computing system.
14. The apparatus of claim 12, wherein the actual time to process the audio task is based on one or more task execution times and time spent processing one or more other tasks.
15. The apparatus of claim 12, wherein the scheduled audio task cycles are less for a future audio task relative to a current audio task.
16. The apparatus of claim 12, wherein the scheduled audio task cycles are an equal or greater number of cycles for the future audio task relative to the current audio task.
17. The apparatus of claim 12 incorporated into a device selected from a group consisting of a music player, a video player, an entertainment unit, a navigation device, a communications device, a personal digital assistant (PDA), a fixed location data unit, and a computer.
18. An apparatus comprising: means for reading a first count value from a free running counter prior to a task executing; means for reading a second count value from the free running counter after the task stops running; means for taking a difference in real time between the first count value and the second count value; means for using an accumulating to accumulate a difference between the first count value and the second count value over a reference interval; and means for dividing the accumulated difference by the reference interval.
19. The apparatus of claim 18, wherein the reference interval is configured to a value equal to or less than a period of the free running counter multiplied by a maximum count value of the accumulator.
20. An apparatus comprising: means for retrieving a reference interval over which to process an audio task in a current frame; means for computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval; and means for scheduling parameters for a future audio task.
21. The apparatus of claim 20 further comprising: means for computing a number of cycles available for processing the future audio task, based on a task load of the audio task and based on the actual number of cycles to process the audio task.
22. The apparatus of claim 20 further comprising: means for computing a number of cycles available for processing the future audio task by NumCyclesAvailable.
23. The apparatus of claim 20, wherein the scheduling parameters are synthesis voice parameters in an audio frame.
24. The apparatus of claim 20, wherein the reference interval is configurable via hardware or software.
25. The apparatus of claim 20, wherein the scheduling comprises a means for processing less cycles for the future audio task than processed in the current audio task.
26. The apparatus of claim 20, wherein the scheduling comprises a means for processing a greater number of audio task cycles for the future audio task relative to the current task.
27. A computer-readable medium embodying a set of instructions executable by one or more processors, comprising: code for retrieving a reference interval over which to process an audio task; code for computing a difference between an actual number of cycles to process the audio task and the number of cycles in the reference interval; and code for scheduling parameters for a future audio task.
28. The computer-readable medium of claim 27, further comprising: code for computing a number of cycles available for processing the future audio task, based on a task load of the audio task and based on the actual number of cycles to process the audio task.
29. The computer-readable medium of claim 27, further comprising computing a number of cycles available for processing the future audio task by NumCyclesAvailable.
30. The computer-readable medium of claim 27, wherein the scheduling parameters are synthesis voice parameters in an audio frame.
31. The computer-readable medium of claim 27, further comprising: code for configuring the reference interval to a value equal to or less than a period of a free running counter multiplied by a maximum count value of the accumulator.
32. The computer-readable medium of claim 27, wherein the scheduling comprises processing less audio task cycles for the future audio task than processed in the current audio task.
33. The computer-readable medium of claim 27, wherein the scheduling comprises processing an equal or greater number of audio task cycles for the future audio task relative to the current audio task.
EP09763595.7A 2008-06-11 2009-06-11 Method and system for measuring task load Active EP2313827B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6053208P 2008-06-11 2008-06-11
PCT/US2009/047005 WO2009152305A1 (en) 2008-06-11 2009-06-11 Method and system for measuring task load

Publications (2)

Publication Number Publication Date
EP2313827A1 true EP2313827A1 (en) 2011-04-27
EP2313827B1 EP2313827B1 (en) 2019-07-24

Family

ID=41415495

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09763595.7A Active EP2313827B1 (en) 2008-06-11 2009-06-11 Method and system for measuring task load

Country Status (6)

Country Link
US (1) US8594816B2 (en)
EP (1) EP2313827B1 (en)
JP (1) JP5275457B2 (en)
KR (1) KR101264195B1 (en)
CN (1) CN102057356A (en)
WO (1) WO2009152305A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453146B2 (en) * 2009-12-23 2013-05-28 Intel Corporation Apportioning a counted value to a task executed on a multi-core processor
JP4905597B1 (en) * 2011-03-15 2012-03-28 オムロン株式会社 Controller support device, controller support program to be executed in the device, and recording medium storing the program
JP5799797B2 (en) * 2011-12-21 2015-10-28 富士通株式会社 Calculation method, calculation program, and computer
KR102237373B1 (en) * 2014-07-02 2021-04-07 삼성전자 주식회사 Method for task scheduling and Electronic device using the same
US9785473B2 (en) 2014-07-14 2017-10-10 Nxp Usa, Inc. Configurable per-task state counters for processing cores in multi-tasking processing systems
KR102356702B1 (en) * 2015-11-24 2022-01-27 삼성전자주식회사 Host cpu assisted audio processing method and computing system performing the same
CN106095558B (en) * 2016-06-16 2019-05-10 Oppo广东移动通信有限公司 A kind of method and terminal of audio effect processing

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4937780A (en) * 1986-05-30 1990-06-26 Bull Nh Information Systems, Inc. Single instruction updating of processing time field using software invisible working registers
JP3169597B2 (en) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 Multitask execution time accounting method and its mechanism
JPH05181688A (en) * 1991-05-24 1993-07-23 Internatl Business Mach Corp <Ibm> Method for predicting progress of task, program product and workstation
JPH0512040A (en) 1991-07-04 1993-01-22 Mitsubishi Electric Corp Task execution control system
JP2671690B2 (en) 1992-01-08 1997-10-29 ヤマハ株式会社 Electronic musical instrument
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
JP2969138B2 (en) 1992-12-21 1999-11-02 ヤマハ株式会社 Pitch detection device
JP3285986B2 (en) 1993-01-12 2002-05-27 ローランド株式会社 Electronic musical instrument assignment device
US5596159A (en) * 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
SG67993A1 (en) * 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
DE69841526D1 (en) * 1997-03-04 2010-04-15 Panasonic Corp Processor suitable for efficient execution of many asynchronous event tasks
US6301603B1 (en) * 1998-02-17 2001-10-09 Euphonics Incorporated Scalable audio processing on a heterogeneous processor array
JP3873160B2 (en) 1998-11-20 2007-01-24 カシオ計算機株式会社 Music recording device and recording medium recording program for generating musical sound
CN1393094A (en) 2000-08-16 2003-01-22 皇家菲利浦电子有限公司 Method of playing multimedia applications
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
CN1695378A (en) 2001-12-12 2005-11-09 皇家飞利浦电子股份有限公司 Processing a media signal on a media system
DE10238575A1 (en) 2002-08-22 2004-03-04 Siemens Ag Method for measuring the net runtime of a data processing program
JP4146375B2 (en) 2004-03-19 2008-09-10 日本電信電話株式会社 Process control device, process control method, and process control program
US20060155543A1 (en) * 2005-01-13 2006-07-13 Korg, Inc. Dynamic voice allocation in a vector processor based audio processor
JP5063364B2 (en) 2005-02-10 2012-10-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Speech synthesis method
US7877752B2 (en) * 2005-12-14 2011-01-25 Broadcom Corp. Method and system for efficient audio scheduling for dual-decode digital signal processor (DSP)
GB2440216A (en) 2006-05-19 2008-01-23 Ibm Computer program for calculating the (accumulated) processing time for tasks
CN100504808C (en) 2006-09-11 2009-06-24 中兴通讯股份有限公司 Method for measuring task CPU occupancy rate in multitasking operation system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2009152305A1 *

Also Published As

Publication number Publication date
KR20110030550A (en) 2011-03-23
US20090312856A1 (en) 2009-12-17
JP5275457B2 (en) 2013-08-28
KR101264195B1 (en) 2013-05-14
EP2313827B1 (en) 2019-07-24
WO2009152305A1 (en) 2009-12-17
JP2011524574A (en) 2011-09-01
US8594816B2 (en) 2013-11-26
CN102057356A (en) 2011-05-11

Similar Documents

Publication Publication Date Title
EP2313827B1 (en) Method and system for measuring task load
KR100421589B1 (en) Tone generating method and apparatus thereof
US8962965B2 (en) Musical sound generation device, storage medium, and musical sound generation method
KR101166735B1 (en) Musical instrument digital interface hardware instructions
US9000284B2 (en) Musical sound generation device, musical sound generation method, and storage medium
KR101120968B1 (en) Musical instrument digital interface hardware instruction set
JP3163984B2 (en) Music generator
JPH0922287A (en) Musical sound waveform generating method
US5386529A (en) Digital signal processor for use in sound quality treatment by filtering
KR100682444B1 (en) Audio signal processor
KR100302626B1 (en) Sound generating device and method
JP2010522362A5 (en)
CN101454834B (en) Contents reproducing device
JP3693045B2 (en) Music generator
CN101727897B (en) Speech synthesis device, method and monitor applied thereby
JP4334276B2 (en) Signal processing apparatus and signal processing method
JP4063286B2 (en) Sound generator
JP4238614B2 (en) Stream data processing system, stream data processing method, stream data processing program, and computer-readable recording medium storing the program
JP2006098859A (en) Musical sound generating device and program for musical sound generation processing
JP4023332B2 (en) Recording / playback device
JP5904601B2 (en) Recording apparatus, recording method, and computer program for recording control
JP2008268468A (en) Reproducing device for musical sound, and program
JPH10283186A (en) Processor

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20110111

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA RS

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20160321

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20190109

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602009059229

Country of ref document: DE

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1159011

Country of ref document: AT

Kind code of ref document: T

Effective date: 20190815

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20190724

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1159011

Country of ref document: AT

Kind code of ref document: T

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20191125

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20191024

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20191024

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20191124

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20191025

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200224

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602009059229

Country of ref document: DE

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG2D Information on lapse in contracting state deleted

Ref country code: IS

26N No opposition filed

Effective date: 20200603

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200611

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20200630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200630

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200630

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200611

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200630

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20210520

Year of fee payment: 13

Ref country code: DE

Payment date: 20210512

Year of fee payment: 13

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20210528

Year of fee payment: 13

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190724

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602009059229

Country of ref document: DE

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20220611

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220611

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20230103