source: rtems/doc/supplements/m68k/timedata.t @ 4cfdfb00

4.104.114.84.95
Last change on this file since 4cfdfb00 was 219432f, checked in by Joel Sherrill <joel.sherrill@…>, on 07/31/02 at 00:14:42

2002-07-30 Joel Sherrill <joel@…>

  • timeMVME136.t, timedata.t: Replaced XXX's with real info.
  • Property mode set to 100644
File size: 6.2 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-2002.
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 MVME136 Timing Data, MVME136 Timing Data Introduction, Timing Specification Terminology, Top
16@end ifinfo
17@chapter MVME136 Timing Data
18@ifinfo
19@menu
20* MVME136 Timing Data Introduction::
21* MVME136 Timing Data Hardware Platform::
22* MVME136 Timing Data Interrupt Latency::
23* MVME136 Timing Data Context Switch::
24* MVME136 Timing Data Directive Times::
25* MVME136 Timing Data Task Manager::
26* MVME136 Timing Data Interrupt Manager::
27* MVME136 Timing Data Clock Manager::
28* MVME136 Timing Data Timer Manager::
29* MVME136 Timing Data Semaphore Manager::
30* MVME136 Timing Data Message Manager::
31* MVME136 Timing Data Event Manager::
32* MVME136 Timing Data Signal Manager::
33* MVME136 Timing Data Partition Manager::
34* MVME136 Timing Data Region Manager::
35* MVME136 Timing Data Dual-Ported Memory Manager::
36* MVME136 Timing Data I/O Manager::
37* MVME136 Timing Data Rate Monotonic Manager::
38@end menu
39@end ifinfo
40
41@ifinfo
42@node MVME136 Timing Data Introduction, MVME136 Timing Data Hardware Platform, MVME136 Timing Data, MVME136 Timing Data
43@end ifinfo
44@section Introduction
45
46The timing data for the MC68020 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 switch
52times as they pertain to the MC68020 version of RTEMS.
53
54@ifinfo
55@node MVME136 Timing Data Hardware Platform, MVME136 Timing Data Interrupt Latency, MVME136 Timing Data Introduction, MVME136 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 Motorola
61MVME135 CPU board.  The MVME135 is a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
62Mhz board with one wait
63state dynamic memory and a MC68881 numeric coprocessor.  The
64Zilog 8036 countdown timer on this board was used to measure
65elapsed time with a one-half microsecond resolution.  All
66sources of hardware interrupts were disabled, although the
67interrupt level of the MC68020 allows all interrupts.
68
69The maximum period interrupts are disabled was
70measured by summing the number of CPU cycles required by each
71assembly language instruction executed while interrupts were
72disabled.  The worst case times of the MC68020 microprocessor
73were used for each instruction.  Zero wait state memory was
74assumed.  The total CPU cycles executed with interrupts
75disabled, including the instructions to disable and enable
76interrupts, was divided by 20 to simulate a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
77Mhz MC68020.  It
78should be noted that the worst case instruction times for the
79MC68020 assume that the internal cache is disabled and that no
80instructions overlap.
81
82@ifinfo
83@node MVME136 Timing Data Interrupt Latency, MVME136 Timing Data Context Switch, MVME136 Timing Data Hardware Platform, MVME136 Timing Data
84@end ifinfo
85@section Interrupt Latency
86
87The maximum period with interrupts disabled within
88RTEMS is less than RTEMS_MAXIMUM_DISABLE_PERIOD
89microseconds including the instructions
90which disable and re-enable interrupts.  The time required for
91the MC68020 to vector an interrupt and for the RTEMS entry
92overhead before invoking the user's interrupt handler are a
93total of RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
94microseconds.  These combine to yield a worst case
95interrupt latency of less than
96RTEMS_MAXIMUM_DISABLE_PERIOD + RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
97microseconds at RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
98Mhz.  [NOTE:  The maximum period with interrupts
99disabled was last determined for Release
100RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
101
102It should be noted again that the maximum period with
103interrupts disabled within RTEMS is hand-timed and based upon
104worst case (i.e. CPU cache disabled and no instruction overlap)
105times for a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
106Mhz MC68020.  The interrupt vector and entry
107overhead time was generated on an MVME135 benchmark platform
108using the Multiprocessing Communications registers to generate
109as the interrupt source.
110
111@ifinfo
112@node MVME136 Timing Data Context Switch, MVME136 Timing Data Directive Times, MVME136 Timing Data Interrupt Latency, MVME136 Timing Data
113@end ifinfo
114@section Context Switch
115
116The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS
117microseconds on the MVME135 benchmark platform when no floating
118point context is saved or restored.  Additional execution time
119is required when a TASK_SWITCH user extension is configured.
120The use of the TASK_SWITCH extension is application dependent.
121Thus, its execution time is not considered part of the raw
122context switch time.
123
124Since RTEMS was designed specifically for embedded
125missile applications which are floating point intensive, the
126executive is optimized to avoid unnecessarily saving and
127restoring the state of the numeric coprocessor.  The state of
128the numeric coprocessor is only saved when an FLOATING_POINT
129task is dispatched and that task was not the last task to
130utilize the coprocessor.  In a system with only one
131FLOATING_POINT task, the state of the numeric coprocessor will
132never be saved or restored.  When the first FLOATING_POINT task
133is dispatched, RTEMS does not need to save the current state of
134the numeric coprocessor.
135
136The exact amount of time required to save and restore
137floating point context is dependent on whether an MC68881 or
138MC68882 is being used as well as the state of the numeric
139coprocessor.  These numeric coprocessors define three operating
140states: initialized, idle, and busy.  RTEMS places the
141coprocessor in the initialized state when a task is started or
142restarted.  Once the task has utilized the coprocessor, it is in
143the idle state when floating point instructions are not
144executing and the busy state when floating point instructions
145are executing.  The state of the coprocessor is task specific.
146
147The following table summarizes the context switch
148times for the MVME135 benchmark platform:
149
150@include timetbl.texi
151
152@tex
153\global\advance \smallskipamount by 4pt
154@end tex
Note: See TracBrowser for help on using the repository browser.