Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ең нашар жағдайда орындалу уақыты (WCET) — есептеу тапсырмасының белгілі бір аппараттық платформада орындалуына кететін ең ұзақ уақыт.
The worst case execution time (WCET) of a computational task is the maximum length of time the task could take to execute on a specific hardware platform.
Не үшін қолданылады
Ең нашар орындалу уақыты көбінесе сенімді нақты уақыт жүйелерінде қолданылады, онда бағдарламалық құралдың ең нашар орындалу уақытын түсіну, сенімділік немесе дұрыс функционалдық мінез-құлық үшін маңызды. Мысалы, көлік құралындағы қозғалтқыштың жұмысын басқаратын компьютерлік жүйе, кіріс деректеріне белгілі бір уақыт ішінде жауап беруі керек. Жауап беру уақытын құрайтын бір компонент – бағдарламалық құралды орындауға кеткен уақыт. Сондықтан, егер бағдарламалық құралдың ең нашар орындалу уақытын анықтау мүмкін болса, жүйе дизайнерлері оны басқа әдістермен, мысалы, кестелеу талдауымен бірге қолданып, жүйенің жеткілікті жылдам жауап беретініне көз жеткізе алады. WCET әлеуетті түрде көптеген нақты уақыт жүйелеріне қолданылғанымен, практикада WCET кепілдігі көбінесе жоғары сенімділік немесе қауіпсіздік талаптары бар нақты уақыт жүйелерінде қолданылады. Мысалы, авиациялық бағдарламалық құралдарға DO178C стандартының 6.3.4-бөлімінде белгілі бір назар аудару қажет. Автомобильдік жүйелерде бағдарламалық құралды қолданудың артуы бағдарламалық құралды WCET талдауымен бағалау қажеттілігін де арттырады. Кейбір жүйелерді жобалау кезінде WCET көбінесе кестелеу талдауына кіріс ретінде қолданылады, бірақ WCET-тің маңызды жүйелердегі басты қолданылуы – ARINC 653 сияқты бөліктерге бөлінген жүйеде алдын ала белгіленген уақыт бюджеттерінің бұзылмауын қамтамасыз ету болып табылады.
Worst case execution time is typically used in reliable real time systems, where understanding the worst case timing behaviour of software is important for reliability or correct functional behaviour. As an example, a computer system that controls the behaviour of an engine in a vehicle might need to respond to inputs within a specific amount of time. One component that makes up the response time is the time spent executing the software – hence if the software worst case execution time can be determined, then the designer of the system can use this with other techniques such as schedulability analysis to ensure that the system responds fast enough. While WCET is potentially applicable to many real time systems, in practice an assurance of WCET is mainly used by real time systems that are related to high reliability or safety. For example, in airborne software some attention to software is required by DO178C section 6.3.4. The increasing use of software in automotive systems is also driving the need to use WCET analysis of software. In the design of some systems, WCET is often used as an input to schedulability analysis, although a much more common use of WCET in critical systems is to ensure that the pre allocated timing budgets in a partition scheduled system such as ARINC 653 are not violated.
Қарастырылатын мәселелер
WCET-ті талдау арқылы табу мәселесі тоқтату мәселесімен эквивалентті және де жалпы жағдайда шешілмейді. Ақыр соңында, инженерлер WCET-ті анықтауға тырысатын жүйелерде бағдарламалық құралдар әдетте жақсы құрылымдалған, әрқашан аяқталады және талдауға жарамды болады. WCET-ті табудың көптеген әдістері жуықтауды қолданады (әдетте, белгісіздіктер болғанда жоғарылай дөңгелектеу) және сондықтан практикада нақты WCET-ті алу мүмкін емес деп есептеледі. Оның орнына, WCET-ті табудың әртүрлі техникалары WCET-тің бағалауын береді. Бұл бағалаулар көбінесе пессимистік болады, яғни есептелген WCET нақты WCET-тен жоғары екені белгілі (әдетте осылай қажет). WCET талдауындағы көптеген жұмыстар талдаудың пессимизмін азайтуға бағытталған, сонда бағаланған мән жүйе дизайнерлері үшін жеткілікті төмен болуы үшін. WCET талдауы әдетте бір жіптің, тапсырманың немесе процестің орындалу уақытына қатысты. Дегенмен, қазіргі заманғы аппараттық құралдарда, әсіресе көп ядролы процессорларда, егер олар кэш, жад жолдары және басқа аппараттық мүмкіндіктерді бөліссе, жүйедегі басқа тапсырмалар берілген тапсырманың WCET-іне әсер етеді. Сонымен қатар, WCET талдауында, егер олар нақты жүйеде пайда болуы мүмкін болса, тапсырмаларды жоспарлау кезінде туындайтын тоқтаулар немесе үзілістер де ескерілуі керек. Сондықтан WCET талдауын қолдану контекстін ескеру маңызды.
The problem of finding WCET by analysis is equivalent to the halting problem and is therefore not solvable in the general. Fortunately, for the kind of systems that engineers typically want to find WCET for, the software is typically well structured, will always terminate and is analyzable. Most methods for finding a WCET involve approximations (usually a rounding upwards when there are uncertainties) and hence in practice the exact WCET itself is often regarded as unobtainable. Instead, different techniques for finding the WCET produce estimates for the WCET. Those estimates are typically pessimistic, meaning that the estimated WCET is known to be higher than the real WCET (which is usually what is desired). Much work on WCET analysis is on reducing the pessimism in analysis so that the estimated value is low enough to be valuable to the system designer. WCET analysis usually refers to the execution time of single thread, task or process. However, on modern hardware, especially multi core, other tasks in the system will impact the WCET of a given task if they share cache, memory lines and other hardware features. Further, task scheduling events such as blocking or to be interruptions should be considered in WCET analysis if they can occur in a particular system. Therefore, it is important to consider the context in which WCET analysis is applied.
Статикалық талдау әдістері
Статикалық WCET құралы компьютерлік бағдарламалық жасақтаманы тікелей аппараттық құралдарда орындамай, WCET-ті бағалауға тырысады. Статикалық талдау әдістері 1980-ші жылдардың соңынан бері осы саладағы зерттеулерге басымдық берді, бірақ өнеркәсіптік ортада бастапқыдан соңғы өлшемдер әдістері стандартты тәжірибе болып келді. Статикалық талдау құралдары бағдарламаның тапсырмасының құрылымын анықтау үшін жоғары деңгейде жұмыс істейді, бастапқы кодтың бөлігіне немесе құрастырылған екілік атқарылатын файлға қолданылады. Олар төмен деңгейде де жұмыс істейді, тапсырма орындалатын нақты аппараттық құрал туралы уақыттық ақпаратты, оның барлық ерекшеліктерін пайдаланады. Осы екі талдау түрін біріктіру арқылы құрал, белгілі бір аппараттық платформада берілген тапсырманы орындау үшін қажетті уақыттың жоғарғы шегін беруге тырысады. Төмен деңгейде статикалық WCET талдау процессордың орташа жағдайдағы өнімділігін жақсартатын архитектуралық мүмкіндіктердің болуымен күрделенеді: нұсқаулар/деректер кэштері, тармақтарды болжау және нұсқаулар конвейерлері, мысалы. Егер осы заманауи архитектуралық мүмкіндіктер талдауда қолданылатын уақыт моделінде ескерілсе, WCET-тің нақты шектерін анықтау мүмкін, бірақ бұл қиындыққа толы. Сондықтан, Еуропалық авиациялық қауіпсіздік агенттігі сияқты сертификаттау органдары модельді тексеру жинақтарына сенеді. Статикалық талдау қарапайым аппараттық құралдар үшін жақсы нәтижелер берді, бірақ статикалық талдаудың мүмкін шектеуі – аппараттық құралдың (әсіресе процессордың) модельдеуді өте қиын ететін күрделілікке жеткендігі. Атап айтқанда, модельдеу процесі бірнеше көздерден қателерді тудыруы мүмкін: чип дизайнындағы қателер, құжаттаманың жетіспеуі, құжаттамадағы қателер, модель жасаудағы қателер; бәрі де модельдің нақты аппараттық құралда байқалатыннан өзгеше мінез-құлықты болжауына әкелуі мүмкін. Әдетте, мінез-құлықты дәл болжау мүмкін болмаған жағдайда, пессимистік нәтиже қолданылады, бұл WCET бағалауының орындалу уақытында алынған кез келген мәннен әлдеқайда жоғары болуына әкелуі мүмкін. Көп ядролы процессорларда WCET-тің нақты статикалық бағалауын алу әсіресе қиын. Статикалық талдаудың әртүрлі формаларын іске асыратын көптеген коммерциялық және академиялық құралдар бар.
A static WCET tool attempts to estimate WCET by examining the computer software without executing it directly on the hardware. Static analysis techniques have dominated research in the area since the late 1980s, although in an industrial setting, end to end measurements approaches were the standard practice. Static analysis tools work at a high level to determine the structure of a program's task, working either on a piece of source code or disassembled binary executable. They also work at a low level, using timing information about the real hardware that the task will execute on, with all its specific features. By combining those two kinds of analysis, the tool attempts to give an upper bound on the time required to execute a given task on a given hardware platform. At the low level, static WCET analysis is complicated by the presence of architectural features that improve the average case performance of the processor: instruction/data caches, branch prediction and instruction pipelines, for example. It is possible, but increasingly difficult, to determine tight WCET bounds if these modern architectural features are taken into account in the timing model used by the analysis. Certification authorities such as the European Aviation Safety Agency, therefore, rely on model validation suites. Static analysis has resulted in good results for simpler hardware, however a possible limitation of static analysis is that the hardware (the CPU in particular) has reached a complexity which is extremely hard to model. In particular, the modelling process can introduce errors from several sources: errors in chip design, lack of documentation, errors in documentation, errors in model creation; all leading to cases where the model predicts a different behavior to that observed on real hardware. Typically, where it is not possible to accurately predict a behavior, a pessimistic result is used, which can lead to the WCET estimate being much larger than anything achieved at run time. Obtaining tight static WCET estimation is particularly difficult on multi core processors. There are a number of commercial and academic tools that implement various forms of static analysis.
Өлшеу және гибридтік әдістер
Өлшемге негізделген және гибридті тәсілдер әдетте нақты аппараттық құралдарда қысқа код сегменттерінің орындалу уақытын өлшеуге тырысады, содан кейін оларды жоғары деңгейдегі талдауда біріктіреді. Құралдар бағдарламалық жасақтаманың құрылымын (мысалы, циклдар, тармақталулар) ескере отырып, үлкен бағдарламаның ең нашар жағдайдағы орындалу уақытын (WCET) бағалауға мүмкіндік береді. Бұның себебі, күрделі бағдарламалық жасақтамада ең ұзақ жолды тексеру қиын, бірақ оның көптеген кішігірім компоненттерінде ең ұзақ жолды тексеру оңайырақ. Ең нашар жағдайдың әсерін талдау үшін тек бір рет сынақ кезінде көру жеткілікті, сонда оны басқа ең нашар жағдай оқиғаларымен біріктіруге болады. Әдетте, бағдарламалық жасақтаманың кішігірім бөліктерін аспаптар (бағдарламаға маркерлер қосу) немесе аппараттық қолдау, мысалы, жөндеушілер (debuggers) және CPU аппараттық іздеу модульдері арқылы автоматты түрде өлшеуге болады. Бұл маркерлер бағдарламаның орындалу жолын және әртүрлі нүктелерде орындалу уақытын қамтитын орындалу ізін (trace) құрайды. Содан кейін із талданады, бағдарламаның әр бөлігінің орындалуына кеткен максималды уақыт, әр циклдің максималды қайталану уақыты және бағдарламалық жасақтаманың сыналмаған бөліктері бар-жоғы (кодты қамту) анықталады. Өлшемге негізделген WCET талдауы қарапайым және күрделі аппараттық құралдар үшін де жақсы нәтижелер көрсетті, бірақ статикалық талдау сияқты, көп ядролы (multi-core) жағдайларда шамадан тыс пессимизмге ұшырауы мүмкін, себебі бір ядроның екіншісіне тигізетін әсерін анықтау қиын. Өлшемнің шектеулілігі – сынақ кезінде ең нашар жағдайдың әсерін байқау қажеттігі (бірақ міндетті түрде бір уақытта емес). Ең нашар жағдайдың әсерін міндетті түрде сынап көргенін анықтау қиын болуы мүмкін. Өлшемге негізделген талдаудың әртүрлі формаларын іске асыратын көптеген коммерциялық және академиялық құралдар бар.
Measurement based and hybrid approaches usually try to measure the execution times of short code segments on the real hardware, which are then combined in a higher level analysis. Tools take into account the structure of the software (e. g. loops, branches), to produce an estimate of the WCET of the larger program. The rationale is that it's hard to test the longest path in complex software, but it is easier to test the longest path in many smaller components of it. A worst case effect needs only to be seen once during testing for the analysis to be able to combine it with other worst case events in its analysis. Typically, the small sections of software can be measured automatically using techniques such as instrumentation (adding markers to the software) or with hardware support such as debuggers, and CPU hardware tracing modules. These markers result in a trace of execution, which includes both the path taken through the program and the time at which different points were executed. The trace is then analyzed to determine the maximum time that each part of the program has ever taken to execute, what the maximum observed iteration time of each loop is and whether there are any parts of the software that are untested (Code coverage). Measurement based WCET analysis has resulted in good results for both simple and complex hardware, although like static analysis it can suffer excessive pessimism in multi core situations, where the impact of one core on another is hard to define. A limitation of measurement is that it relies on observing the worst case effects during testing (although not necessarily at the same time). It can be hard to determine if the worst case effects have necessarily been tested. There are a number of commercial and academic tools that implement various forms of measurement based analysis.
Зерттеу
Ең белсенді ғылыми топтар АҚШ-та (Американың Мичиган университеті), Швецияда (Mälardalen, Linköping), Германияда (Saarbrücken, Dortmund, Braunschweig), Францияда (Тулуза, Saclay, Rennes), Австрияда (Вена), Ұлыбританияда (York университеті және Rapita Systems Ltd), Италияда (Болонья), Испанияда (Кантабрия, Валенсия) және Швейцарияда (Цюрих) орналасқан. Соңғы кезде код деңгейіндегі уақытты талдау мәселесі Еуропа шегінен тыс, АҚШ-та (Солтүстік Каролина, Флорида), Канада, Австралия, Бангладеш (MBI LAB және RDS), Сауд Арабиясы Корольдігінің UQU (HISE LAB) университетінде, Сингапур және Үндістанда (IIT Мадрас, IISc Бангалор) зерттеу топтарының қызығушылығын арттырды.
The most active research groups are in USA (American Michigan University ), Sweden (Mälardalen, Linköping), Germany (Saarbrücken, Dortmund, Braunschweig), France (Toulouse, Saclay, Rennes), Austria (Vienna), UK (University of York and Rapita Systems Ltd), Italy (Bologna), Spain (Cantabria, Valencia), and Switzerland (Zurich). Recently, the topic of code level timing analysis has found more attention outside of Europe by research groups in the US (North Carolina, Florida), Canada, Australia, Bangladesh(MBI LAB and RDS), Kingdom of Saudi Arabia UQU(HISE LAB), Singapore and India (IIT Madras, IISc Bangalore).
WCET құралдар сынағы
Бірінші халықаралық WCET Tool Challenge 2006 жылдың күзінде өтті. Оны Mälardalen университеті ұйымдастырды және ARTIST2 кіріктірілген жүйелерді жобалау бойынша Excellence Network желісі демеушілік етті. Байқаудың мақсаты – ең нашар жағдайда орындалу уақытын талдаудың әртүрлі тәсілдерін қарастыру және салыстыру. Тапсырмалардың WCET-і үшін қауіпсіз жоғарғы шекараны анықтай алатын барлық қолжетімді құралдар мен прототиптер қатысты. Қорытынды нәтижелер 2006 жылдың қараша айында Кипрдің Пафос қаласында өткен ISoLA 2006 халықаралық симпозиумында таныстырылды. 2008 жылы екінші байқау өтті.
The first international WCET Tool Challenge took place during the autumn of 2006. It was organized by the University of Mälardalen and sponsored by the ARTIST2 Network of Excellence on Embedded Systems Design. The aim of the Challenge was to inspect and to compare different approaches in analyzing the worst case execution time. All available tools and prototypes able to determine safe upper bounds for the WCET of tasks have participated. The final results were presented in November 2006 at the ISoLA 2006 International Symposium in Paphos, Cyprus. A second Challenge took place in 2008.