OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [supplements/] [m68k/] [timedata.t] - Blame information for rev 1771

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
@c
2
@c  COPYRIGHT (c) 1988-2002.
3
@c  On-Line Applications Research Corporation (OAR).
4
@c  All rights reserved.
5
@c
6
@c  timedata.t,v 1.10 2002/07/31 00:14:42 joel Exp
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
 
46
The timing data for the MC68020 version of RTEMS is
47
provided along with the target dependent aspects concerning the
48
gathering of the timing data.  The hardware platform used to
49
gather the times is described to give the reader a better
50
understanding of each directive time provided.  Also, provided
51
is a description of the interrupt latency and the context switch
52
times 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
 
59
All times reported except for the maximum period
60
interrupts are disabled by RTEMS were measured using a Motorola
61
MVME135 CPU board.  The MVME135 is a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
62
Mhz board with one wait
63
state dynamic memory and a MC68881 numeric coprocessor.  The
64
Zilog 8036 countdown timer on this board was used to measure
65
elapsed time with a one-half microsecond resolution.  All
66
sources of hardware interrupts were disabled, although the
67
interrupt level of the MC68020 allows all interrupts.
68
 
69
The maximum period interrupts are disabled was
70
measured by summing the number of CPU cycles required by each
71
assembly language instruction executed while interrupts were
72
disabled.  The worst case times of the MC68020 microprocessor
73
were used for each instruction.  Zero wait state memory was
74
assumed.  The total CPU cycles executed with interrupts
75
disabled, including the instructions to disable and enable
76
interrupts, was divided by 20 to simulate a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
77
Mhz MC68020.  It
78
should be noted that the worst case instruction times for the
79
MC68020 assume that the internal cache is disabled and that no
80
instructions 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
 
87
The maximum period with interrupts disabled within
88
RTEMS is less than RTEMS_MAXIMUM_DISABLE_PERIOD
89
microseconds including the instructions
90
which disable and re-enable interrupts.  The time required for
91
the MC68020 to vector an interrupt and for the RTEMS entry
92
overhead before invoking the user's interrupt handler are a
93
total of RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
94
microseconds.  These combine to yield a worst case
95
interrupt latency of less than
96
RTEMS_MAXIMUM_DISABLE_PERIOD + RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
97
microseconds at RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
98
Mhz.  [NOTE:  The maximum period with interrupts
99
disabled was last determined for Release
100
RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
101
 
102
It should be noted again that the maximum period with
103
interrupts disabled within RTEMS is hand-timed and based upon
104
worst case (i.e. CPU cache disabled and no instruction overlap)
105
times for a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
106
Mhz MC68020.  The interrupt vector and entry
107
overhead time was generated on an MVME135 benchmark platform
108
using the Multiprocessing Communications registers to generate
109
as 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
 
116
The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS
117
microseconds on the MVME135 benchmark platform when no floating
118
point context is saved or restored.  Additional execution time
119
is required when a TASK_SWITCH user extension is configured.
120
The use of the TASK_SWITCH extension is application dependent.
121
Thus, its execution time is not considered part of the raw
122
context switch time.
123
 
124
Since RTEMS was designed specifically for embedded
125
missile applications which are floating point intensive, the
126
executive is optimized to avoid unnecessarily saving and
127
restoring the state of the numeric coprocessor.  The state of
128
the numeric coprocessor is only saved when an FLOATING_POINT
129
task is dispatched and that task was not the last task to
130
utilize the coprocessor.  In a system with only one
131
FLOATING_POINT task, the state of the numeric coprocessor will
132
never be saved or restored.  When the first FLOATING_POINT task
133
is dispatched, RTEMS does not need to save the current state of
134
the numeric coprocessor.
135
 
136
The exact amount of time required to save and restore
137
floating point context is dependent on whether an MC68881 or
138
MC68882 is being used as well as the state of the numeric
139
coprocessor.  These numeric coprocessors define three operating
140
states: initialized, idle, and busy.  RTEMS places the
141
coprocessor in the initialized state when a task is started or
142
restarted.  Once the task has utilized the coprocessor, it is in
143
the idle state when floating point instructions are not
144
executing and the busy state when floating point instructions
145
are executing.  The state of the coprocessor is task specific.
146
 
147
The following table summarizes the context switch
148
times for the MVME135 benchmark platform:
149
 
150
@include timetbl.texi
151
 
152
@tex
153
\global\advance \smallskipamount by 4pt
154
@end tex

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.