📄 timedmv177.t
字号:
@c@c Timing information for the DMV177@c@c COPYRIGHT (c) 1988-2002.@c On-Line Applications Research Corporation (OAR).@c All rights reserved.@c@c $Id: timeDMV177.t,v 1.7 2002/01/17 21:47:46 joel Exp $@c@include common/timemac.texi@tex\global\advance \smallskipamount by -4pt@end tex@chapter RTEMS_BSP Timing Data@section IntroductionThe timing data for RTEMS on the DY-4 RTEMS_BSP boardis provided along with the targetdependent aspects concerning the gathering of the timing data.The hardware platform used to gather the times is described togive the reader a better understanding of each directive timeprovided. Also, provided is a description of the interruptlatency and the context switch times as they pertain to thePowerPC version of RTEMS.@section Hardware PlatformAll times reported in this chapter were measured using a RTEMS_BSP board.All data and code caching was disabled. This results in very deterministictimes which represent the worst possible performance. Many embedded applications disable caching to insure that execution times arerepeatable. Moreover, the JTAG port on certain revisions of the PowerPC603e does not operate properly if caching is enabled. Thus during development and debug, caching must be off.The PowerPC decrementer register was was used to gatherall timing information. In the PowerPC architecture,this register typically countssomething like CPU cycles or is a function of the clockspeed. On the PPC603e decrements once for every four (4) bus cycles.On the RTEMS_BSP, the bus operates at a clock speed of 33 Mhz. This result in a very accurate number since it is a function of the microprocessor itself. Thus all measurements in this chapter are reported as the actual number of decrementerclicks reported. To convert the numbers reported to microseconds, one shoulddivide the number reported by 8.650752. This number was derived asshown below:@example((33 * 1048576) / 1000000) / 4 = 8.650752@end exampleAll sources of hardware interrupts were disabled,although traps were enabled and the interrupt level of thePowerPC allows all interrupts.@section Interrupt LatencyThe maximum period with traps disabled or theprocessor interrupt level set to it's highest value inside RTEMSis less than RTEMS_MAXIMUM_DISABLE_PERIODmicroseconds including the instructions whichdisable and re-enable interrupts. The time required for thePowerPC to vector an interrupt and for the RTEMS entry overheadbefore invoking the user's trap handler are a total of RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASKmicroseconds. These combine to yield a worst case interruptlatency of less than RTEMS_MAXIMUM_DISABLE_PERIOD +RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK microseconds at RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz.[NOTE: The maximum period with interrupts disabled was lastdetermined for Release RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]The maximum period with interrupts disabled withinRTEMS is hand-timed with some assistance from the PowerPC simulator.The maximum period with interrupts disabled with RTEMS has notbeen calculated on this target.The interrupt vector and entry overhead time wasgenerated on the PSIM benchmark platform using the PowerPC'sdecrementer register. This register was programmed to generatean interrupt after one countdown.@section Context SwitchThe RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTSbus cycle on the RTEMS_BSP benchmark platform when no floatingpoint context is saved or restored. Additional execution timeis required when a TASK_SWITCH user extension is configured.The use of the TASK_SWITCH extension is application dependent.Thus, its execution time is not considered part of the rawcontext switch time.Since RTEMS was designed specifically for embeddedmissile applications which are floating point intensive, theexecutive is optimized to avoid unnecessarily saving andrestoring the state of the numeric coprocessor. The state ofthe numeric coprocessor is only saved when an FLOATING_POINTtask is dispatched and that task was not the last task toutilize the coprocessor. In a system with only oneFLOATING_POINT task, the state of the numeric coprocessor willnever be saved or restored. When the first FLOATING_POINT taskis dispatched, RTEMS does not need to save the current state ofthe numeric coprocessor.The following table summarizes the context switchtimes for the RTEMS_BSP benchmark platform:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -