FREQUENCY EXECUTION MONITORING IN A REAL-TIME EMBEDDED SYSTEM
20190354135 ยท 2019-11-21
Inventors
Cpc classification
G06F1/08
PHYSICS
G06F15/7814
PHYSICS
G06F11/076
PHYSICS
G06F11/0772
PHYSICS
G01R23/005
PHYSICS
International classification
Abstract
A method includes reading first and second timer count values from a timer. The first timer count value is associated with a first time point, and the second timer count value is associated with a second time point. Also, the method includes calculating a difference between the first and the second timer count values, and determining whether the difference is within a range. The range is based on a desired executing frequency to perform a computing task, a variation of the desired executing frequency, and a timer frequency. Further, based on the difference not being within the range, the method includes setting an error flag value to be true and incrementing an error count value.
Claims
1. A method comprising: reading, by a processing resource, from a timer, a first count value associated with a first execution of a task of a real time operating system and a second count value associated with a second execution of the task; calculating a test value based on a difference between the first count value and the second count value; determining whether the test value is in a predetermined range of values; and setting an error flag to be true if the test value is not within the predetermined range or setting the error flag to be false if the test value is within the predetermined range.
2. The method of claim 1, wherein the timer comprises a decrementing counter having a finite number of values and wherein when the timer reaches a minimum value, the timer transitions to a maximum counting value of the timer and, when the timer transitions to the maximum counting value at a point in time between the reading of the first and second count values, the method includes: basing the calculation of the test value additionally on an addition of the maximum count value of the timer to the difference between the first count value and the second count value.
3. A system comprising: a timer to generate count pulses of a clock signal and to generate output count values; and a processing resource coupled to the timer and to a storage device containing executable instructions that, when executed by the processing resource, cause the processing resource to: read, from the timer, a first count value associated with a first execution of a task of a real time operating system and a second count value associated with a second execution of the task; calculate a test value based on a difference between the first count value and the second count value; determine whether the test value is in a predetermined range; and set an error flag to be true if the test value is not within the range or set the error flag to be false if the test value is within the range.
4. The system of claim 3, wherein the processing resource is at least one of: (a) a single core central processing unit (CPU), (b) a multi-core CPU, or (c) a computer cluster.
5. The system of claim 3, the timer comprises a decrementing counter having a finite number of values and wherein when the timer reaches a minimum value, the timer transitions to a maximum counting value of the timer and wherein responsive to the timer transitioning to the maximum count value at a point in time between the reading of the first and second count values, the processing resource is caused to base the calculation of the test value additionally on an addition of the maximum count value of the timer to the difference between the first count value and the second count value.
6. The method of claim 1, further comprising: reading, by the processing resource, from the timer, a first count value associated with a first execution of a second task of the real time operating system and a second count value associated with a second execution of the second task; calculating a second test value based on a difference between the first count value of the second task and the second count value of the second task; determining whether the second test value is in a second predetermined range of values; and setting a second error flag to be true if the second test value is not within the second predetermined range or setting the error flag to be false if the test value is within the second predetermined range.
7. The system of claim 3, wherein the executable instructions, when executed by the processing resource, further cause the processing resource to: read, from the timer, a first count value associated with a first execution of a second task of the real time operating system and a second count value associated with a second execution of the second task; calculate a second test value based on a difference between the first count value of the second task and the second count value of the second task; determining whether the second test value is in a second predetermined range of values; and setting a second error flag to be true if the second test value is not within the second predetermined range or setting the error flag to be false if the test value is within the second predetermined range.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0006]
[0007]
[0008]
[0009]
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
[0010] In this description, the term couple or couples means either an indirect or direct connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections.
[0011] An operating system is configured to manage hardware resources of a computing device and host applications that run on the computing device. More specifically, a real-time operating system (RTOS) is an operating system designated to perform tasks (e.g., host applications) with very precise timing and a high degree of reliability. Such characteristics of the RTOS may be advantageously implemented in measurement and automation systems wherein, for example, downtime of the system is costly or a safety hazard may be caused due to a delay of executing a particular task.
[0012] By real-time, it is meant that an operating system may include a predetermined maximum amount of time for each of tasks that the operating system performs, or include a consistent level regarding the amount of time the operating system takes to accept and complete each of the tasks. As such, the RTOS is commonly used to perform multitasking. Multitasking is a method in which multiple tasks are performed during the same period of time. Generally, for a system implementing a RTOS for multitasking, the system may use certain algorithms or methods to schedule each task, such as preemptive priority and/or round robin scheduling. Regardless of which scheduling method is used, assuring a task is performed or executed at a predetermined rate, or at least within an acceptable range of rates is beneficial to the successful performance of the system.
[0013] To assure a task is executed at a predetermined rate, described embodiments provide systems and methods to monitor an execution frequency of a task in an RTOS. Generally, the execution frequency is a frequency for a task to be executed, and the execution frequency may be designated by a user. More specifically, the execution frequency, or execution time, may be referred to as time spent by a processor to perform the task. For example, a user may designate a particular task to be executed by a processor every five second. Such designation of the execution frequency may advantageously provide a precise timing to produce correct results that the user originally desires. However, conventionally, the user who designates the execution frequency of a task is incapable of knowing whether the task is being executed at the desired frequency.
[0014] Using the described systems and methods, a user may monitor the execution frequency for each task and the user may be informed of an error when a particular task is not executed within a predetermined or an acceptable range of execution frequency (i.e., rate). Once the error is received by the user, the user may take further action in any suitable purposes. For example, the user may tailor an instruction to execute the particular task accordingly so as to cause the task to be executed at a desired rate. Thus, the described embodiments may advantageously provide a more efficient way to implement the RTOS with a precise timing for scheduling each of the tasks among a multitasking system, and in turn, enhance the performance of the system. Generally, the term task is a programmed instruction which is synonymous to a thread, or a process.
[0015]
[0016] In
[0017] Still referring to
[0018] The system 100 preferably is a real-time embedded system. An embedded system is an electronic system with a dedicated function within a larger mechanical or electrical system, and the embedded system is commonly embedded as part of a complete device often including hardware and mechanical components.
[0019]
[0020] Further, in accordance with a preferred embodiment, as described above, a task in a system implementing the multitasking is generally executed at a desired frequency which may be predetermined by a user. The desired frequency is generally referred as execution frequency, f.sub.e. An inverse value of the desired execution frequency may be referred to as desired execution time (T.sub.e). Depending on the performance of the system such as how precise of the timing for each of the tasks to be executed, the desired execution time, T.sub.e, may be different from how much time, in practice, the processing resource spend finishing the task. Conventionally, no systems or methods have been provided to monitor the exact time spent by a processor to finish a task.
[0021] However, with these two frequencies (i.e., f.sub.t and f.sub.e), a method may be developed to monitor the execution frequency of a task executed by the system 100. In a preferred embodiment, a tolerable execution frequency variation may be determined by the user to be, f.sub.e. As such, an allowable range of time for executing a task may be defined as equation (1),
More particularly, if an amount of time to execute the task does not reside within the allowable range, the execution may be regarded as an error. Hereinafter, the amount of time to execute a task, T, is referred to as the execution time.
[0022] In a further embodiment, the equation (2) below may be derived from equation (1) above for the purpose of decreasing a computational load of the processing resource 104. The equation (2) is shown as,
where T.sub.t is the timer count interval, and f.sub.t is the inverse value of the timer count interval, that is, the timer frequency.
[0023] Still in a preferred embodiment, the execution time can be measured by the timer 102, so that the execution time T may be expressed for a decrementing timer as equation (3) shown below,
T=(cnt.sub.ncnt.sub.n+1).Math.T.sub.t(3)
where cnt.sub.n is the timer count value (e.g., 203) for the n.sup.th iteration of the task being executed, and analogously, cnt.sub.n+1 is the timer count value for the (n+1).sup.th iteration of the task being executed. Typically, the n.sup.th iteration is associated with a first value of time and the (n+1).sup.th iteration is associated with a second value of time successively to the first value of time. If the timer 102 is a decrementing timer, the difference between cnt.sub.n and cnt.sub.n+1 (i.e., cnt.sub.ncnt.sub.n+1) is positive; in order to maintain the difference to be a positive value, the difference may be expressed as, cnt.sub.n+1cnt.sub.n, for an incrementing timer. Replacing the term
in equation (2) may result in a new equation for the allowable execution time, which is shown as equation (4),
In a further embodiment, the lower bound of the equation (4) may be simplified as cnt.sub.min, wherein cnt.sub.min may be referred to as a minimum allowable counter difference. Similarly, the upper bound may also be simplified as cnt.sub.max, wherein cnt.sub.max may be referred to as a maximum allowable counter difference. Thus, the equation is simplified as
cnt.sub.mincntcnt.sub.max,(5).
[0024] By using equation (5), whether a task is executed at a rate (frequency) within an allowable range can be determined. More particularly, since the lower bound and the higher bound in the equation (5) are based on parameters (f.sub.t, f.sub.e, and f.sub.e) predetermined by the user, reading two successive timer count values from the timer 102 may cause the processing resource 104 to determine whether the task is executed at an allowable frequency.
[0025] Also, in some embodiments, the processing resource 104 may be capable of detecting a transition (e.g., 207) while reading the timer count value from the timer 102. The transition (e.g., 207) occurs when a first timer count interval elapses and a successive second timer count initiates. Once the transition is detected by the processing resource 104, the processing resource 104 may add the starting value (e.g., 203) to the execution time difference (i.e., cnt) to avoid causing a singularity while implementing the described method to monitor the execution frequency.
[0026]
[0027] As shown in the example of
[0028]
[0029] As a result of executing the difference of timer count value calculation module 304, the flow diagram 400 routes to block 404 to calculate a difference (i.e., cnt) between the first and the second timer count values. In a preferred embodiment, if the timer 102 is a decrementing timer, the difference is calculated as the first timer count value minus the second timer count value. Once the difference has been calculated at block 404, the flow diagram may route to block 406. At block 406, the difference of timer count value determination module 306 is executed to determine whether the difference is within the allowable range of execution time, based on the equation (5).
[0030] Still referring to the flow diagram 400, if the difference is within the range, the flow diagram 400 routes to block 408 to set an error flag value to be false. However, if the difference is not within the range, the flow diagram 400 routes to block 410 to set the error flag value to be true.
[0031] Modifications are possible in the described embodiments, and other embodiments are possible, within the scope of the claims.