⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeerc32.t

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 T
字号:
@c@c  COPYRIGHT (c) 1988-2002.@c  On-Line Applications Research Corporation (OAR).@c  All rights reserved.@c@c  $Id: timeERC32.t,v 1.9 2002/01/17 21:47:47 joel Exp $@c@include common/timemac.texi@tex\global\advance \smallskipamount by -4pt@end tex@chapter ERC32 Timing Data@section IntroductionThe timing data for RTEMS on the ERC32 implementationof the SPARC architecture is 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 theSPARC version of RTEMS.@section Hardware PlatformAll times reported in this chapter were measuredusing the SPARC Instruction Simulator (SIS) developed by theEuropean Space Agency.  SIS simulates the ERC32 -- a custom lowpower implementation combining the Cypress 90C601 integer unit,the Cypress 90C602 floating point unit, and a number ofperipherals such as counter timers, interrupt controller and amemory controller.For the RTEMS tests, SIS is configured with thefollowing characteristics:@itemize @bullet@item 15 Mhz clock speed@item 0 wait states for PROM accesses@item 0 wait states for RAM accesses@end itemizeThe ERC32's General Purpose Timer was used to gatherall timing information.  This timer was programmed to operatewith one microsecond accuracy.  All sources of hardwareinterrupts were disabled, although traps were enabled and theinterrupt level of the SPARC 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 theERC32 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 SIS.  The maximumperiod with interrupts disabled with RTEMS occurs during acontext switch when traps are disabled to flush all the registerwindows to memory.  The length of time spent flushing theregister windows varies based on the number of windows whichmust be flushed.  Based on the information reported by SIS, ittakes from 4.0 to 18.0 microseconds (37 to 122 instructions) toflush the register windows.  It takes approximately 41 CPUcycles (2.73 microseconds) to flush each register window set tomemory.  The register window flush operation is heavily memorybound.[NOTE: All traps are disabled during the registerwindow flush thus disabling both software generate traps andexternal interrupts.  During a normal RTEMS critical section,the processor interrupt level (pil) is raised to level 15 andtraps are left enabled.  The longest path for a normal criticalsection within RTEMS is less than 50 instructions.]The interrupt vector and entry overhead time wasgenerated on the SIS benchmark platform using the ERC32'sability to forcibly generate an arbitrary interrupt as thesource of the "benchmark" interrupt.@section Context SwitchThe RTEMS processor context switch time is 10microseconds on the SIS 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 ERC32 benchmark platform:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -