========= 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. .. figure:: 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 .. figure:: 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