8 research outputs found

    Continuous Non-Intrusive Hybrid WCET Estimation Using Waypoint Graphs

    Get PDF
    Traditionally, the Worst-Case Execution Time (WCET) of Embedded Software has been estimated using analytical approaches. This is effective, if good models of the processor/System-on-Chip (SoC) architecture exist. Unfortunately, modern high performance SoCs often contain unpredictable and/or undocumented components that influence the timing behaviour. Thus, analytical results for such processors are unrealistically pessimistic. One possible alternative approach seems to be hybrid WCET analysis, where measurement data together with an analytical approach is used to estimate worst-case behaviour. Previously, we demonstrated how continuous evaluation of basic block trace data can be used to produce detailed statistics of basic blocks in embedded software. In the meantime it has become clear that the trace data provided by modern SoCs delivers a different type of information. In this contribution, we show that even under realistic conditions, a meaningful analysis can be conducted with the trace data

    Towards Multicore WCET Analysis

    Get PDF
    AbsInt is the leading provider of commercial tools for static code-level timing analysis. Its aiT Worst-Case Execution Time Analyzer computes tight bounds for the WCET of tasks in embedded real-time systems. However, the results only incorporate the core-local latencies, i.e. interference delays due to other cores in a multicore system are ignored. This paper presents some of the work we have done towards multicore WCET analysis. We look into both static and measurement-based timing analysis for COTS multicore systems

    EPC Enacted: Integration in an Industrial Toolbox and Use against a Railway Application

    Get PDF
    Measurement-based timing analysis approaches are increasingly making their way into several industrial domains on account of their good cost-benefit ratio. The trustworthiness of those methods, however, suffers from the limitation that their results are only valid for the particular paths and execution conditions that the user is able to explore with the available input vectors. It is generally not possible to guarantee that the collected measurements are fully representative of the worst-case timing behaviour. In the context of measurement-based probabilistic timing analysis, the Extended Path Coverage (EPC) approach has been recently proposed as a means to extend the representativeness of measurement observations, to obtain the same effect of full path coverage. At the time of its first publication, EPC had not reached an implementation maturity that could be trialled industrially. In this work we analyze the practical implications of using EPC with real-world applications, and discuss the challenges in integrating it in an industrial-quality toolchain. We show that we were able to meet EPC requirements and successfully evaluate the technique on a real Railway application, on top of a commercial toolchain and full execution stack.This work has received funding from the European Community’s Seventh Framework Programme [FP7/2007-2013] under grant agreement 611085 (PROXIMA, www.proxima-project.eu). This work has also been partially supported by the Spanish Ministry of Economy and Competitiveness (MINECO) under grant TIN2015-65316-P and the HiPEAC Network of Excellence. Jaume Abella has been partially supported by the MINECO under Ramon y Cajal postdoctoral fellowship number RYC-2013-14717. The authors are grateful to Antoine Colin from Rapita Ltd. for his precious support.Peer ReviewedPostprint (author's final draft

    Design and Implementation of a Time Predictable Processor: Evaluation With a Space Case Study

    Get PDF
    Embedded real-time systems like those found in automotive, rail and aerospace, steadily require higher levels of guaranteed computing performance (and hence time predictability) motivated by the increasing number of functionalities provided by software. However, high-performance processor design is driven by the average-performance needs of mainstream market. To make things worse, changing those designs is hard since the embedded real-time market is comparatively a small market. A path to address this mismatch is designing low-complexity hardware features that favor time predictability and can be enabled/disabled not to affect average performance when performance guarantees are not required. In this line, we present the lessons learned designing and implementing LEOPARD, a four-core processor facilitating measurement-based timing analysis (widely used in most domains). LEOPARD has been designed adding low-overhead hardware mechanisms to a LEON3 processor baseline that allow capturing the impact of jittery resources (i.e. with variable latency) in the measurements performed at analysis time. In particular, at core level we handle the jitter of caches, TLBs and variable-latency floating point units; and at the chip level, we deal with contention so that time-composable timing guarantees can be obtained. The result of our applied study with a Space application shows how per-resource jitter is controlled facilitating the computation of high-quality WCET estimates

    HRM: merging hardware event monitors for improved timing analysis of complex MPSoCs

    Get PDF
    The Performance Monitoring Unit (PMU) in MPSoCs is at the heart of the latest measurement-based timing analysis techniques in Critical Embedded Systems. In particular, hardware event monitors (HEMs) in the PMU are used as building blocks in the process of budgeting and verifying software timing by tracking and controlling access counts to shared resources. While the number of HEMs in current MPSoCs reaches hundreds, they are read via Performance Monitoring Counters whose number is usually limited to 4-8, thus requiring multiple runs of each experiment in order to collect all desired HEMs. Despite the effort of engineers in controlling the execution conditions of each experiment, the complexity of current MPSoCs makes it arguably impossible to completely remove the noise affecting each run. As a result, HEMs read in different runs are subject to different variability, and hence, those HEMs captured in different runs cannot be ‘blindly’ merged. In this work, we focus on the NXP T2080 platform where we observed up to 59% variability across different runs of the same experiment for some relevant HEMs (e.g. processor cycles). We develop a HEM reading and merging (HRM) approach to join reliably HEMs across different runs as a fundamental element of any measurement-based timing budgeting and verification technique. Our method builds on order statistics and the selection of an anchor HEM read in all runs to derive the most plausible combination of HEM readings that keep the distribution of each HEM and their relationship with the anchor HEM intact.This work has been partially supported by the Spanish Ministry of Science and Innovation under grant PID2019-107255GB, the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No. 772773) and the HiPEAC Network of Excellence.Peer ReviewedPostprint (author's final draft

    Virtual Timing Isolation Safety-Net for Multicore Processors

    Get PDF
    Multicore processors promise to offer the performance as well as the reduced space, weight and power needed by future aircrafts. However, commercial off-the-shelf multicore processors suffer from timing interferences between cores which complicates applying them in hard real-time systems like avionic applications. In this thesis, a safety-net system is proposed which enables a virtual timing isolation of applications running on one core from all other cores. The technique is based on hardware external to the multicore processor and completely transparent to the applications, i.e. no modification of the observed software is necessary. The basic idea is to apply a single-core execution based worst-case execution time analysis and to accept a predefined slowdown during multicore execution. If the slowdown exceeds the acceptable bounds, interferences will be reduced by controlling the behavior of low-critical cores to keep the main application’s progress inside the given bounds. Measuring the progress of the applications running on the main core is performed by tracking the application’s fingerprint. A fingerprint is created by extraction of the performance counters of the critical core in very small timesteps which results in a characteristic curve for every execution of a periodic program. In standalone mode, without any running applications on the other cores, a model of an application is created by clustering and combining the extracted curves. During runtime, the extracted performance counter values are compared to the model to determine the progress of the critical application. In case the progress of an application is unacceptably delayed, the cores creating the interferences are throttled. The interference creating cores are determined by the accesses of the respective cores to the shared resources. A controller that takes the progress of a critical application as well as the time until the final deadline into account throttles the low priority cores. Throttling is either performed by frequency scaling of the interfering cores or by halt and continue with a pulse width modulation scheme. The complete safety-net system was evaluated on a TACLeBench benchmark running on an NXP P4080 multicore processor observed by a Xilinx FPGA implementing a MicroBlaze soft-core microcontroller. The results show that the progress can be measured by the fingerprinting with a final deviation of less than 1% for a TACLeBench execution with running opponent cores and indicate the non-intrusiveness of the approach. Several experiments are conducted to demonstrate the effectiveness of the different throttling mechanisms. Evaluations using a real-world avionic application show that the approach can be applied to integrated modular avionic applications. The safety-net does not ensure robust partitioning in the conventional meaning. The applications on the different cores can influence each other in the timing domain, but the external safety-net ensures that the interference on the high critical application is low enough to keep the timing. This allows for an efficient utilization of the multicore processor. Every critical application is treated individually, and by relying on individual models recorded in standalone mode, the critical as well as the non-critical applications running on the other cores can be exchanged without recreating a fingerprint model. This eases the porting of legacy applications to the multicore processor and allows the exchange of applications without recertification.Der Einsatz von Multicore Prozessoren in Avioniksystemen verspricht sowohl die Performancesteigerung als auch den reduzierten Platz-, Gewichts- und Energieverbrauch, der zur Realisierung von zukĂŒnftigen Flugzeugen benötigt wird. Die Verwendung von seriengefertigten (COTS) Multicore Prozessoren in sicherheitskritischen Echtzeitsystemen ist jedoch sehr komplex, da eine gegenseitige zeitliche Beeinflussung der Anwendungen auf den unterschiedlichen Kernen nicht ausgeschlossen werden kann. In dieser Arbeit wird ein Konzept vorgestellt, das eine virtuelle zeitliche Trennung der Anwendungen, die auf einem Prozessorkern ausgefĂŒhrt werden, von denen der ĂŒbrigen Kerne ermöglicht. Die Grundidee besteht darin, eine auf einer Single-Core-AusfĂŒhrung basierende Laufzeitanalyse (WCET) durchzufĂŒhren und eine vordefinierte Verlangsamung wĂ€hrend der Multicore-AusfĂŒhrung zu akzeptieren. Wenn die Verlangsamung die zulĂ€ssige Grenze ĂŒberschreitet, wird das Verhalten niedrigkritischer Kerne so gesteuert, dass der Fortschritt der Hauptanwendung innerhalb der Deadlines bleibt. Die Bestimmung des Fortschritts der kritischen Anwendungen erfolgt durch das Verfolgen eines sogenannten Fingerprints. Ein Fingerprint wird durch Auslesen der Performance Counter des kritischen Kerns in sehr kleinen Zeitschritten erzeugt, was zu einer charakteristischen Kurve fĂŒr jede AusfĂŒhrung eines periodischen Programms fĂŒhrt. Ein Modell einer Anwendung wird erstellt, indem die extrahierten Kurven gruppiert und kombiniert werden. WĂ€hrend der Laufzeit werden die ausgelesenen Werte mit dem Modell verglichen, um den Fortschritt zu bestimmen. Falls die zeitliche AusfĂŒhrung einer ktitischen Anwendung zu stark verzögert wird, werden die Kerne gedrosselt, welche die Störungen verursachen. Das Konzept wurde mit einem TACLeBench-Benchmark evaluiert, der auf einem NXP P4080 Multicore Prozessor ausgefĂŒht, und von einem Xilinx-FPGA beobachtet wurde. Es konnte gezeigt werden, dass der Fortschritt durch den Fingerprint mit einer endgĂŒltigen Abweichung von weniger als 1% fĂŒr eine TACLeBench-AusfĂŒhrung mit laufenden konkurrierenden Kernen gemessen werden kann. Die Evaluation mit einer realen Avionik-Anwendung zeigte, dass das Konzept fĂŒr integrierte modulare Avionik-Anwendungen (IMA) genutzt werden kann. Der Ansatz gewĂ€hrleistet keine robuste Partitionierung im herkömmlichen Sinne. Die Anwendungen auf den verschiedenen Kernen können sich zeitlich gegenseitig beeinflussen, aber ein externes Sicherheitsnetz stellt sicher, dass die Verlangsamung der hochkritischen Anwendung niedrig genug ist, um die Deadlines zu halten. Dies ermöglicht eine effiziente Auslastung des Multicore Prozessors. Außerdem wird jede kritische Anwendung einzeln behandelt und verfĂŒgt ĂŒber ein individuelles Modell. Somit können die kritischen und nicht kritischen Anwendungen, die auf den anderen Kernen ausgefĂŒhrt werden, ausgetauscht werden, ohne ein Modell neu zu erstellen. Dies vereinfacht die Portierung von bestehenden Anwendungen auf Multicore Prozessoren und ermöglicht den Austausch von Anwendungen ohne eine erneute Zertifizierung

    Static Probabilistic Timing Analysis for Real-Time Embedded Systems in Presence of Faults

    Get PDF
    RÉSUMÉ Une mĂ©moire cache est le lien entre le processeur et la mĂ©moire principale. Elle permet de rĂ©duire considĂ©rablement les temps d’accĂšs aux blocs de mĂ©moire dans un systĂšme embarquĂ© temps-rĂ©el et critique (CRTES), ce qui influence Ă©normĂ©ment son comportement temporel. Des caches Ă  accĂšs alĂ©atoire—caches avec une politique de remplacement alĂ©atoire—ont Ă©tĂ© proposĂ©es dans le but d’amĂ©liorer les estimations du comportement temporel des CRTES, et cela en diminuant les cas pathologiques. Les Measurement Based Probabilistic Timing Analysis (MBPTA) et Static Probabilistic Timing Analysis (SPTA) sont deux mĂ©thodes qui ciblent Ă  estimer le pire temps d’exĂ©cution (Worst Case Execution Time probabiliste - pWCET) d’une façon probabiliste et sĂ©curitaire pour les caches alĂ©atoires. À travers cette dissertation, on prĂ©sente des travaux de recherche concernant l’estimation temporelle basĂ©e sur la mĂ©thode SPTA. L’état de l’art sur les mĂ©thodologies SPTA fournissent des estimations sĂ©curitaires et strictes. En revanche, au vu de la rĂ©duction d’échelle des technologies des semiconducteurs utilisĂ©s pour la mise en oeuvre des composants faisant partie des CRETS, les caches sur puce sont de plus en plus prĂ©disposĂ©s aux pannes. Par consĂ©quent, nous avons dĂ©veloppĂ© des mĂ©thodologies SPTA pour l’estimation des pWCETs en prĂ©sence de pannes. Nous avons effectuĂ© Ă©galement des Ă©valuations de l’impact de ces fautes sur les comportements temporels. Afin d’examiner les pannes, nous avons modĂ©lisĂ© dans un premier temps les pannes transitoires et permanentes. Une panne transitoire reprĂ©sente un changement d’état temporaire. Le systĂšme peut ainsi ĂȘtre restaurĂ© en utilisant des techniques de dĂ©tection et de correction des pannes. D’un autre cĂŽtĂ©, une panne permanente introduit un changement permanent. Elle persiste aprĂšs son apparition et affecte en consĂ©quence le comportement gĂ©nĂ©ral du systĂšme. Nous avons alors proposĂ© une mĂ©thode basĂ©e sur les chaĂźnes de Markov afin de modĂ©liser les Ă©tats de disposition de la mĂ©moire. Pour chaque accĂšs Ă  un bloc de mĂ©moire, le changement de l’état est calculĂ© en utilisant une matrice de transition, tout en tenant compte des impacts des fautes transitoires. Nous avons Ă©galement utilisĂ© diffĂ©rents types de modĂšles de la chaĂźne de Markov pour reprĂ©senter le systĂšme ayant subi un nombres diffĂ©rent de pannes permanentes. Les expĂ©riences montrent que notre mĂ©thode SPTA assure des rĂ©sultats prĂ©cis en prĂ©sence des pannes transitoires et permanentes.----------ABSTRACT : A cache is typically the bridge between a processor and its main memory. It significantly reduces the access latencies to memory blocks and its timing behavior. Random caches—caches with a random replacement policy—have been proposed to improve timing behavior estimates in critical real-time embedded systems (CRTESs) by reducing pathological cases due to systematic cache misses. Measurement Based Probabilistic Timing Analysis (MBPTA)and Static Probabilistic Timing Analysis (SPTA) aim at providing safe probabilistic Worst Case Execution Time (pWCET) estimates for random caches. In this dissertation, we present research work on timing estimation based on SPTA. State-of-the-art SPTA methodologies produce safe and tight pWCET estimates. However, as semiconductor technology scales down, CRTES components—especially their on-chip caches—become prone to faults. Consequently,we developed SPTA methodologies to estimate pWCETs in the presence of faults, and evaluated the impacts of faults on timing behaviors. To investigate faults, we first defined transient and permanent fault models. A transient fault represents a temporary change of state. The system with transient faults can be recovered using fault detection and correction techniques. A permanent fault represents a permanent change of state. It persists after its occurrence and affects the system’s behavior afterwards. Additionally, we proposed a Markov chain method to model memory layout states. For each memory block access, the state changes are calculated using a transition matrix. The transient fault impacts were integrated into the transition matrix computation, and we used different groups of Markov chain models to represent the system with different number of permanent faults. Experiments showed that our SPTA method provided accurate results in the presence of both transient and permanent faults

    Testen von Datensicherheit in vernetzten und automatisierten Fahrzeugen durch virtuelle SteuergerÀte

    Get PDF
    In der Automobilindustrie sind in den vergangenen Jahren die zwei Trends Automatisierung und Vernetzung entstanden. Diese Trends sorgen fĂŒr eine steigende Anzahl an Funktionen im Fahrzeug. Neben einer Erhöhung des Komforts nehmen jedoch auch die Risiken durch den unerlaubten Zugriff von außen zu. Das IT-Manipulationen bei Fahrzeugen keine Ausnahme bilden, zeigen bereits erste Beispiele. Besonders durch die langen Lebenszyklen in der Automobilindustrie und der Tatsache, dass 44% aller Angriffe auf IT-Systeme durch bekannte Schwachstellen geschehen, mĂŒssen Fahrzeuge bereits in der Entwicklung abgesichert werden. Bezogen auf die funktionale Sicherheit (engl. Safety) existieren in der Automobilentwicklung bereits eine Vielzahl an Testprozessen und -methoden. Eine Übertragbarkeit dieser auf die Datensicherheit (engl. Security) ist jedoch nicht gegeben, wodurch neue Methoden am Entstehen sind. Daher wird eine Testmethode mittels virtuellen SteuergerĂ€ten vorstellt. HierfĂŒr wird aufgezeigt, welche Beobachtungspunkte und Überwachungsfunktionen fĂŒr die Tests der Datensicherheit gegeben sein mĂŒssen, wie sich daraus eine Testmethodik ableiten lĂ€sst und wie diese Testmethodik anschließend in die Automobilentwicklung eingebunden werden kann. FĂŒr die Testmethodik wurden die Bereiche Speicher-, Numerische-, Systematische-, Funktionale- und Anwendungsfehler identifiziert. Der Fokus wird dabei auf die ersten beiden Fehlerarten gelegt und daraus Kriterien fĂŒr einen Test der Datensicherheit abgeleitet. Anhand der Kriterien werden Beobachtungspunkte in bestehenden Testsystemen analysiert und basierend auf einem virtuellen SteuergerĂ€t neue Beobachtungspunkte ergĂ€nzt. Hierbei werden nicht nur Schnittstellen des SteuergerĂ€ts berĂŒcksichtigt, sondern ebenfalls interne ZustĂ€nde des steuernden Artefakts (ausgefĂŒhrte Instruktionen, Variablen und Speicherbereiche) und des ausfĂŒhrenden Artefakts (Register, lokaler Busse und Recheneinheit). Eine BerĂŒcksichtigung der internen ZustĂ€nde ist wichtig, da Speicherfehler und numerische Fehler nicht zwangslĂ€ufig an die Schnittstellen propagieren und dadurch in der Umwelt sichtbar sind. Anhand der Beobachtungspunkte in einem virtuellen SteuergerĂ€t wurde eine Gesamtsystemsimulation erstellt, die das SteuergerĂ€t mit Applikation, Prozessor und Peripherie simuliert. Eine Co-Simulation ĂŒbernimmt die Erzeugung der Teststimuli. Durch die Beobachtungspunkte können RĂŒckschlĂŒsse auf das Verhalten und die ZustĂ€nde innerhalb des SteuergerĂ€ts gezogen werden. Durch die zusĂ€tzlichen Beobachtungspunkte können Testmethoden wie Überwachung der Instruktionen und Register, Analyse der Eingaben, Markierung des genutzten Speichers und Analysemöglichkeiten der Codeabdeckung eingesetzt werden. ZusĂ€tzlich ergeben sich durch evolutionĂ€re Verfahren die Möglichkeit der Maximierung des Variablen Wachstums und des Speicherzugriffs sowie die Minimierung des Abstands zwischen Heap und Stack. Um die Testmethoden in einem Entwicklungsprozess einsetzten zu können werden die Ergebnisse auf eine vernetzte Funktion (Adaptive Cruise Control) skaliert und das Echtzeitverhalten beurteilt. FĂŒr die Simulation eines einzelnen SteuergerĂ€ts können dabei bis zu 62 SteuergerĂ€te parallel simuliert werden, bevor die Simulation auf der realen Hardware schneller als der Ablauf in der Simulation ist. Durch die ErgĂ€nzung von Überwachungsfunktionen und Co-Simulationen sinkt das EchtzeitverhĂ€ltnis jedoch exponentiell. Abschließend wird die Testmethodik mit Angriffen aus der Automobilindustrie bewertet und aufgezeigt, welche Fehler erkannt worden wĂ€ren. Die Testmethodik ist dabei jedoch nur so genau, wie die zugrundeliegenden Modelle. Eine Erhöhung der Genauigkeit bedeutet dabei höhere Kosten in der Entwicklung. Zudem muss der Quellcode fĂŒr die Applikation als Source- oder Maschinencode bekannt sein. Wird die Testmethode als ErgĂ€nzung zu bereits bekannten Testverfahren eingesetzt, können jedoch Probleme in der Datensicherheit bereits der Entwicklung erkannt werden
    corecore