Real-Time

Real time is being able to respond to an interrupt in a bounded maximum time.

An analysis by OMAC User Group showed that 95% of real-time applications require between 0.5ms to 10 ms respond time and could tolerate 10% variations, or 50µs to 1ms of jitter.

../_images/Jitter.png

Typical real-time requirements.

The important thing is to be able to respond with a sufficient amount of time to handle the interrupt before exceeding the system’s required tolerances. And to be able to do so consistently. Always responding within a bounded amount of time.

Real World Example

  • A Microsoft partner wanted to know if Windows CE was ‘HARD’ real-time
    • Wanted to know if CE was capable of running GSM radio and UI at the same with one CPU.
    • They were concerned that CE was not HARD real-time enough to meet the requirements
  • The requirements
    • Run GSM cellular radio DSP
    • Meet “tight” timing requirements
    • Target CPU ARM9 250Mhz
    • Full Windows CE UI
    • And play video

Real World Timing Requirements

  • So what where the actually requirements?
  • Interrupt every 4.6 ms
  • Allowable jitter of 0.5us
../_images/Response_Requirements.png

Required timing constraints for cellphone project

Windows CE Test Results

We did a quick test using the following configuration:

  • Samsung SMDK2410 development board
  • 200 MHz ARM with 16x16 cache
  • Windows CE 5.0 with full UI
  • Running a WMV video

Here’s what we got:

Value ISR starts IST starts
Minimum 1.2 31.7
Average 3.3 67.2
Maximum 13.3 103.0

Result

  • In terms of the 0.5 ms Jitter alone
    • Longest ISR response time was 13.3 μs or 2.6% of max jitter allowed
    • Longest IST response time was 103 μs or 20.6% of max jitter allowed
  • Conclusion
    • Response time was well within the requirements.
    • The project was approved and went ahead.
  • Lesson
    • What’s important is “Sufficient” time