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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [supplements/] [arm/] [timeBSP.t] - Blame information for rev 1765

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  timeBSP.t,v 1.1 2002/07/30 21:43:53 joel Exp
7
@c
8
 
9
@include common/timemac.texi
10
@tex
11
\global\advance \smallskipamount by -4pt
12
@end tex
13
 
14
@chapter MYBSP Timing Data
15
 
16
@section Introduction
17
 
18
The timing data for the ARM version of RTEMS is
19
provided along with the target dependent aspects concerning the
20
gathering of the timing data.  The hardware platform used to
21
gather the times is described to give the reader a better
22
understanding of each directive time provided.  Also, provided
23
is a description of the interrupt latency and the context switch
24
times as they pertain to the ARM version of RTEMS.
25
 
26
@section Hardware Platform
27
 
28
All times reported except for the maximum period
29
interrupts are disabled by RTEMS were measured using a Motorola
30
MYBSP CPU board.  The MYBSP is a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
31
Mhz board with SDRAM and no numeric coprocessor.  A
32
countdown timer on this board was used to measure
33
elapsed time with a 20 nanosecond resolution.  All
34
sources of hardware interrupts were disabled, although the
35
interrupt level of the ARM microprocessor allows all interrupts.
36
 
37
The maximum period interrupts are disabled was
38
measured by summing the number of CPU cycles required by each
39
assembly language instruction executed while interrupts were
40
disabled.  The worst case times of the ARM9DTMI microprocessor
41
were used for each instruction.  Zero wait state memory was
42
assumed.  The total CPU cycles executed with interrupts
43
disabled, including the instructions to disable and enable
44
interrupts, was divided by TBD to simulate a TBD Mhz processor.  It
45
should be noted that the worst case instruction times
46
assume that the internal cache is disabled and that no
47
instructions overlap.
48
 
49
@section Interrupt Latency
50
 
51
The maximum period with interrupts disabled within
52
RTEMS is less than RTEMS_MAXIMUM_DISABLE_PERIOD
53
microseconds including the instructions
54
which disable and re-enable interrupts.  The time required for
55
the processor to vector an interrupt and for the RTEMS entry
56
overhead before invoking the user's interrupt handler are a
57
total of RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
58
microseconds.  These combine to yield a worst case
59
interrupt latency of less than
60
RTEMS_MAXIMUM_DISABLE_PERIOD + RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
61
microseconds at RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ
62
Mhz.  [NOTE:  The maximum period with interrupts
63
disabled was last determined for Release
64
RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
65
 
66
It should be noted again that the maximum period with
67
interrupts disabled within RTEMS is hand-timed and based upon
68
worst case (i.e. CPU cache disabled and no instruction overlap)
69
times for a RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz processor.
70
The interrupt vector and entry
71
overhead time was generated on an MYBSP benchmark platform
72
using the Multiprocessing Communications registers to generate
73
as the interrupt source.
74
 
75
@section Context Switch
76
 
77
The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS
78
microseconds on the MYBSP benchmark platform when no floating
79
point context is saved or restored.  Additional execution time
80
is required when a TASK_SWITCH user extension is configured.
81
The use of the TASK_SWITCH extension is application dependent.
82
Thus, its execution time is not considered part of the raw
83
context switch time.
84
 
85
The ARM processor benchmarked does not have a floating point
86
unit and consequently no FPU results are reported.
87
 
88
@c Since RTEMS was designed specifically for embedded
89
@c missile applications which are floating point intensive, the
90
@c executive is optimized to avoid unnecessarily saving and
91
@c restoring the state of the numeric coprocessor.  The state of
92
@c the numeric coprocessor is only saved when an FLOATING_POINT
93
@c task is dispatched and that task was not the last task to
94
@c utilize the coprocessor.  In a system with only one
95
@c FLOATING_POINT task, the state of the numeric coprocessor will
96
@c never be saved or restored.  When the first FLOATING_POINT task
97
@c is dispatched, RTEMS does not need to save the current state of
98
@c the numeric coprocessor.
99
 
100
@c The exact amount of time required to save and restore
101
@c floating point context is dependent on whether an XXX or
102
@c XXX is being used as well as the state of the numeric
103
@c coprocessor.  These numeric coprocessors define three operating
104
@c states: initialized, idle, and busy.  RTEMS places the
105
@c coprocessor in the initialized state when a task is started or
106
@c restarted.  Once the task has utilized the coprocessor, it is in
107
@c the idle state when floating point instructions are not
108
@c executing and the busy state when floating point instructions
109
@c are executing.  The state of the coprocessor is task specific.
110
 
111
The following table summarizes the context switch
112
times for the MYBSP benchmark platform:
113
 

powered by: WebSVN 2.1.0

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