source: rtems/doc/supplements/powerpc/timeDMV177.t @ 87a4a35

4.104.114.84.95
Last change on this file since 87a4a35 was 6449498, checked in by Joel Sherrill <joel.sherrill@…>, on 01/17/02 at 21:47:47

2001-01-17 Joel Sherrill <joel@…>

  • SUPPORT, LICENSE: New files.
  • Numerous files touched as part of merging the 4.5 branch onto the mainline development trunk and ensuring that the script that cuts snapshots and releases works on the documentation.
  • Property mode set to 100644
File size: 4.4 KB
Line 
1@c
2@c  Timing information for the DMV177
3@c
4@c  COPYRIGHT (c) 1988-2002.
5@c  On-Line Applications Research Corporation (OAR).
6@c  All rights reserved.
7@c
8@c  $Id$
9@c
10
11@include common/timemac.texi
12@tex
13\global\advance \smallskipamount by -4pt
14@end tex
15
16@chapter RTEMS_BSP Timing Data
17
18@section Introduction
19
20The timing data for RTEMS on the DY-4 RTEMS_BSP board
21is provided along with the target
22dependent aspects concerning the gathering of the timing data.
23The hardware platform used to gather the times is described to
24give the reader a better understanding of each directive time
25provided.  Also, provided is a description of the interrupt
26latency and the context switch times as they pertain to the
27PowerPC version of RTEMS.
28
29@section Hardware Platform
30
31All times reported in this chapter were measured using a RTEMS_BSP board.
32All data and code caching was disabled.  This results in very deterministic
33times which represent the worst possible performance.  Many embedded
34applications disable caching to insure that execution times are
35repeatable.  Moreover, the JTAG port on certain revisions of the PowerPC
36603e does not operate properly if caching is enabled.  Thus during
37development and debug, caching must be off.
38
39The PowerPC decrementer register was was used to gather
40all timing information.  In the PowerPC architecture,
41this register typically counts
42something like CPU cycles or is a function of the clock
43speed.  On the PPC603e decrements once for every four (4) bus cycles.
44On the RTEMS_BSP, the bus operates at a clock speed of
4533 Mhz.  This result in a very accurate number since it is a function of the
46microprocessor itself.  Thus all measurements in this
47chapter are reported as the actual number of decrementer
48clicks reported. 
49
50To convert the numbers reported to microseconds, one should
51divide the number reported by 8.650752.  This number was derived as
52shown below:
53
54@example
55((33 * 1048576) / 1000000) / 4 = 8.650752
56@end example
57
58All sources of hardware interrupts were disabled,
59although traps were enabled and the interrupt level of the
60PowerPC allows all interrupts.
61
62@section Interrupt Latency
63
64The maximum period with traps disabled or the
65processor interrupt level set to it's highest value inside RTEMS
66is less than RTEMS_MAXIMUM_DISABLE_PERIOD
67microseconds including the instructions which
68disable and re-enable interrupts.  The time required for the
69PowerPC to vector an interrupt and for the RTEMS entry overhead
70before invoking the user's trap handler are a total of
71RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
72microseconds.  These combine to yield a worst case interrupt
73latency of less than RTEMS_MAXIMUM_DISABLE_PERIOD +
74RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK microseconds at
75RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz.
76[NOTE:  The maximum period with interrupts disabled was last
77determined for Release RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
78
79The maximum period with interrupts disabled within
80RTEMS is hand-timed with some assistance from the PowerPC simulator.
81The maximum period with interrupts disabled with RTEMS has not
82been calculated on this target.
83
84The interrupt vector and entry overhead time was
85generated on the PSIM benchmark platform using the PowerPC's
86decrementer register.  This register was programmed to generate
87an interrupt after one countdown.
88
89@section Context Switch
90
91The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS
92bus cycle on the RTEMS_BSP benchmark platform when no floating
93point context is saved or restored.  Additional execution time
94is required when a TASK_SWITCH user extension is configured.
95The use of the TASK_SWITCH extension is application dependent.
96Thus, its execution time is not considered part of the raw
97context switch time.
98
99Since RTEMS was designed specifically for embedded
100missile applications which are floating point intensive, the
101executive is optimized to avoid unnecessarily saving and
102restoring the state of the numeric coprocessor.  The state of
103the numeric coprocessor is only saved when an FLOATING_POINT
104task is dispatched and that task was not the last task to
105utilize the coprocessor.  In a system with only one
106FLOATING_POINT task, the state of the numeric coprocessor will
107never be saved or restored.  When the first FLOATING_POINT task
108is dispatched, RTEMS does not need to save the current state of
109the numeric coprocessor.
110
111The following table summarizes the context switch
112times for the RTEMS_BSP benchmark platform:
113
Note: See TracBrowser for help on using the repository browser.