source: rtems/doc/supplements/i386/timedata.t @ 2aaac528

4.104.114.84.95
Last change on this file since 2aaac528 was 2aaac528, checked in by Joel Sherrill <joel.sherrill@…>, on 04/11/98 at 15:20:22

Corrected paths after moving all supplements into a subdirectory.

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