source: rtems/doc/supplements/i386/timeFORCE386.t @ ae68ff0

4.104.114.84.95
Last change on this file since ae68ff0 was ae68ff0, checked in by Joel Sherrill <joel.sherrill@…>, on 05/27/97 at 12:40:11

Initial revision

  • Property mode set to 100644
File size: 5.5 KB
Line 
1@include ../common/timemac.texi
2@tex
3\global\advance \smallskipamount by -4pt
4@end tex
5 
6@ifinfo
7@node i386 Timing Data, i386 Timing Data Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
8@end ifinfo
9@chapter i386 Timing Data
10@ifinfo
11@menu
12* i386 Timing Data Introduction::
13* i386 Timing Data Hardware Platform::
14* i386 Timing Data Interrupt Latency::
15* i386 Timing Data Context Switch::
16* i386 Timing Data Directive Times::
17* i386 Timing Data Task Manager::
18* i386 Timing Data Interrupt Manager::
19* i386 Timing Data Clock Manager::
20* i386 Timing Data Timer Manager::
21* i386 Timing Data Semaphore Manager::
22* i386 Timing Data Message Manager::
23* i386 Timing Data Event Manager::
24* i386 Timing Data Signal Manager::
25* i386 Timing Data Partition Manager::
26* i386 Timing Data Region Manager::
27* i386 Timing Data Dual-Ported Memory Manager::
28* i386 Timing Data I/O Manager::
29* i386 Timing Data Rate Monotonic Manager::
30@end menu
31@end ifinfo
32
33@ifinfo
34@node i386 Timing Data Introduction, i386 Timing Data Hardware Platform, i386 Timing Data, i386 Timing Data
35@end ifinfo
36@section Introduction
37
38The timing data for the i386 version of RTEMS is
39provided along with the target dependent aspects concerning the
40gathering of the timing data.  The hardware platform used to
41gather the times is described to give the reader a better
42understanding of each directive time provided.  Also, provided
43is a description of the  interrupt latency and the context
44switch times as they pertain to the i386 version of RTEMS.
45
46@ifinfo
47@node i386 Timing Data Hardware Platform, i386 Timing Data Interrupt Latency, i386 Timing Data Introduction, i386 Timing Data
48@end ifinfo
49@section Hardware Platform
50
51All times reported except for the maximum period
52interrupts are disabled by RTEMS were measured using a Force
53Computers CPU386 board.  The CPU386 is a 16 Mhz board with zero
54wait state dynamic memory and an i80387 numeric coprocessor.
55One of the count-down timers provided by a Motorola MC68901 was
56used to measure elapsed time with one microsecond resolution.
57All sources of hardware interrupts are disabled, although the
58interrupt level of the i386 allows all interrupts.
59
60The maximum period interrupts are disabled was
61measured by summing the number of CPU cycles required by each
62assembly language instruction executed while interrupts were
63disabled.  Zero wait state memory was assumed.  The total CPU
64cycles executed with interrupts disabled, including the
65instructions to disable and enable interrupts, was divided by 16
66to simulate a i386 executing at 16 Mhz.
67
68@ifinfo
69@node i386 Timing Data Interrupt Latency, i386 Timing Data Context Switch, i386 Timing Data Hardware Platform, i386 Timing Data
70@end ifinfo
71@section Interrupt Latency
72
73The maximum period with interrupts disabled within
74RTEMS is less than RTEMS_MAXIMUM_DISABLE_PERIOD microseconds
75including the instructions
76which disable and re-enable interrupts.  The time required for
77the i386 to generate an interrupt using the int instruction,
78vectoring to an interrupt handler, and for the RTEMS entry
79overhead before invoking the user's interrupt handler are a
80total of 12 microseconds.  These combine to yield a worst case
81interrupt latency of less
82RTEMS_MAXIMUM_DISABLE_PERIOD + RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
83microseconds.  [NOTE:  The
84maximum period with interrupts disabled within RTEMS was last
85calculated for Release RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
86
87It should be noted again that the maximum period with
88interrupts disabled within RTEMS is hand-timed.  The interrupt
89vector and entry overhead time was generated on the Force
90Computers CPU386 benchmark platform using the int instruction as
91the interrupt source.
92
93@ifinfo
94@node i386 Timing Data Context Switch, i386 Timing Data Directive Times, i386 Timing Data Interrupt Latency, i386 Timing Data
95@end ifinfo
96@section Context Switch
97
98The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS
99microseconds on the Force Computers CPU386 benchmark platform.
100This time represents the raw context switch time with no user
101extensions configured.  Additional execution time is required
102when a TASK_SWITCH user extension is configured.  The use of the
103TASK_SWITCH extension is application dependent.  Thus, its
104execution time is not considered part of the base context switch
105time.
106
107Since RTEMS was designed specifically for embedded
108missile applications which are floating point intensive, the
109executive is optimized to avoid unnecessarily saving and
110restoring the state of the numeric coprocessor.  The state of
111the numeric coprocessor is only saved when a FLOATING_POINT task
112is dispatched and that task was not the last task to utilize the
113coprocessor.  In a system with only one FLOATING_POINT task, the
114state of the numeric coprocessor will never be saved or
115restored.  When the first FLOATING_POINT task is dispatched,
116RTEMS does not need to save the current state of the numeric
117coprocessor.
118
119The exact amount of time required to save and restore
120floating point context is dependent on the state of the numeric
121coprocessor.  RTEMS places the coprocessor in the initialized
122state when a task is started or restarted.  Once the task has
123utilized the coprocessor, it is in the idle state when floating
124point instructions are not executing and the busy state when
125floating point instructions are executing.  The state of the
126coprocessor is task specific.
127
128The following table summarizes the context switch
129times for the Force Computers CPU386 benchmark platform:
130
131@include timetbl.texi
132 
133@tex
134\global\advance \smallskipamount by 4pt
135@end tex
Note: See TracBrowser for help on using the repository browser.