|
Basic timing parameters for KADAK's AMX Multitasking Kernel
are listed below. All timing figures are for guidance only and are not
to be interpreted as product specifications.
 |
Measurement Interpretation
|
The task switch time is the time
taken by AMX to suspend one task and resume execution within another.
The measurement is made as follows.
A high priority task waits for a signal from a low priority task.
The low priority task runs, generates the signal and is immediately
blocked because of the switch back to the high priority task.
The task switch time is derived by averaging 100 such cycles.
Interrupt latency is the
time taken by the processor to respond to an interrupt request from
a device seeking service. The time is measured from the instant the
external interrupt signal is generated through to the point at
which the processor has decoded the request and branched to a software
handler.
The worst case interrupt latency
occurs when the application disables interrupts, thereby inhibiting
the processor from responding to an interrupt. The interrupt latency
figures quoted are the worst case scenarios possible within AMX.
In all instances, the worst case occurs in a path through AMX
with a very low probability of execution. Despite this, we publish it!
Handler latency time is the
time taken by the AMX Interrupt Supervisor to reach an application
interrupt handler coded in C. This standard C function is free
to use a variety of AMX services including semaphore signalling
and message passing.
For RISC processors like the PowerPC and ARM which do not
automatically identify each interrupt source, the measurement
includes the time taken by AMX to call an application dependent
interrupt identification procedure.
 |
Be sure to read the comprehensive
timing booklet.
It provides an introduction to the timing issues which
you will encounter using any RTOS. It discusses some of the factors
which make timing measurement so difficult and helps to explain why
instruction counts and cycle counts can rarely be used to measure
execution times.
|
 |
You can also download the
AMX Timing Guide.
Although it duplicates some of the information in the timing booklet,
it also provides specific timing metrics for frequently occurring
AMX operations.
|
 |
Basic AMX Timing Parameters
|
Kernel |
Task Switch (µs) |
Interrupt Latency (µs) |
Handler Latency (µs) |
Measured Using |
| Processor |
MHz |
| AMX 86 |
4.4 |
5.4 |
3.8 |
VAutomation Turbo186 |
24 |
| AMX 386/ET |
1.4 |
2.2 |
1.4 |
Intel Pentium |
100 |
| AMX 68000 |
26.6 |
19.2 |
11.9 |
Motorola MC68EC040 |
25 |
| AMX for ColdFire |
0.5 |
3.4 |
1.3 |
Motorola MCF5407 |
150 |
| AMX for PowerPC |
0.8 |
0
(Note 1) |
2.2 |
IBM PPC405GP |
200 |
| AMX for ARM |
6.0 |
3.0 |
3.0 |
ARM966E |
80 |
| AMX for Thumb |
6.4 |
3.5 |
3.0 |
ARM966E |
80 |
| AMX for MIPS32 |
4.4 |
21.3 |
4.8 |
MIPS 4Kc core |
80 |
| Note 1: |
AMX for PowerPC never disables the external interrupt system.
Consequently, AMX introduces no additional latency beyond that
imposed by the processor itself.
|
|
 |
Available Timing Data Sheets
|
An AMX Timing Guide is included with each AMX Reference Manual.
The guide defines the AMX application task scenarios which were used to
measure specific features of AMX such as clock service, task synchronization
and message passing.
For each target processor for which measurements are available,
the AMX Timing Guide provides a Timing Data Sheet.
The data sheets define the processor, the memory configuration,
the cache conditions and the C compiler features used. The data
sheets summarize the timing results and provide additional explanatory
notes when deemed appropriate.
Timing data sheets are available for each of the processors listed
in the following tables. KADAK regrets that it cannot provide
timing data for every processor operating at all possible frequencies
with each of the supported toolsets.
A copy of the AMX Timing Guide
containing these timing metrics is available for downloading.
 |
 |
Available AMX 86 Timing Data |
 |
25 MHz |
|
Intel486 SX |
|
Commercial PC |
 |
40 MHz |
AMD Am186ES |
AMD Net186 Demonstration Board |
 |
24 MHz |
VA Turbo186 |
VAutomation iCON186 Evaluation Board |
 |
 |
Available AMX 386/ET Timing Data |
 |
100 MHz |
|
Pentium |
|
Commercial PC |
 |
50 MHz |
Intel486 |
Commercial PC |
 |
 |
Available AMX 68000 Timing Data |
 |
25 MHz |
|
MC68EC040 |
|
Motorola MC68EC0x0 Integrated Development Platform |
 |
16 MHz |
MC68332 |
GreenSpring Computer's Platform332 |
 |
25 MHz |
MC68360 |
Motorola M68360QUADS Application Development System |
 |
 |
Available AMX ColdFire Timing Data |
 |
54 MHz |
|
MCF5206e |
|
Motorola M5206EC3 board (Cadre III) |
 |
132 MHz |
MCF5249 |
Motorola M5249C3 board |
 |
66 MHz |
MCF5272 |
Motorola M5272C3 board |
 |
90 MHz |
MCF5307 |
Motorola SBC5307 board (Arnewsh) |
 |
150 MHz |
MCF5407 |
Motorola M5407C3 board |
 |
 |
Available AMX PowerPC Timing Data |
 |
66 MHz |
|
PPC403GCX |
|
IBM 403 EVB Evaluation Board |
 |
66 MHz |
MPC603 |
Motorola Ultra 603 motherboard platform |
 |
200 MHz |
PPC405GP |
IBM PPC405GP Reference Board |
 |
 |
Available AMX ARM / Thumb Timing Data |
 |
20 MHz |
|
ARM7TDMI |
|
ARM Development Board (ARM7TDMI Version) |
 |
32 MHz |
AT91M42800A |
Atmel AT91EB42 Evaluation Board |
 |
80 MHz |
ARM966E |
ARM Integrator/AP Board |
 |
600 MHz |
XScale 80321 |
Intel IQ80321 Evaluation Platform |
 |
 |
Available AMX MIPS32 Timing Data |
 |
80 MHz |
|
MIPS 4Kc |
|
MIPS Malta 4Kc Development Board |
 |
|