Timing Analysis for Time-predictable Architectures


Book Description

With the rising complexity of the underlying computer hardware, the analysis of the timing behavior of real-time software is becoming more and more complex and imprecise. Time-predictable computer architectures thus have been proposed to provide hardware support for timing analysis. The goal is to deliver tighter worst-case execution time (WCET) estimates while keeping the analysis overhead minimal. These estimates are typically provided by standalone WCET analysis tools. The emergence of time-predictable architectures is, however, quite recent. While several designs have been introduced, efforts are still needed to assess their effectiveness in actually enhancing the worst-case performance. For many time-predictable hardware, timing analysis is either non-existing or lacking proper support. Consequently, time-predictable architectures are barely supported in existing WCET analysis tools. The general contribution of this thesis is to help filling this gap and turning some opportunities into concrete advantages. For this, we take interest in the Patmos processor. The already existing support around Patmos allows for an effective exploration of techniques to enhance the worst-case performance. Main contributions include: (1) Handling of predicated execution in timing analysis, (2) Comparison of the precision of stack cache occupancy analyses, (3) Analysis of preemption costs for the stack cache, (4) Preemption mechanisms for the stack cache, and (5) Prefetching-like technique for the stack cache. In addition, we present our WCET analysis tool Odyssey, which implements timing analyses for Patmos.




Time-Predictable Architectures


Book Description

Building computers that can be used to design embedded real-time systems is the subject of this title. Real-time embedded software requires increasingly higher performances. The authors therefore consider processors that implement advanced mechanisms such as pipelining, out-of-order execution, branch prediction, cache memories, multi-threading, multicorearchitectures, etc. The authors of this book investigate the timepredictability of such schemes.




Timing Analysis and Design Optimization for GALS Systems on Time-predictable Multi-core Architectures


Book Description

Ubiquitous real-time embedded systems are defined as computer systems that constantly monitor, respond to, or control external environment. Both functional and temporal correctness should be guaranteed for such systems, especially safety-critical systems whose correct operations are vital to ensure the safety of the public and the environment. The synchronous approach supporting deterministic concurrency is widely adopted in the design and verification of real-time embedded applications. Due to the surge in the demand for tools that can be used to model, validate and synthesize asynchronous systems, a Model of Computation (MoC) named Globally Asynchronous Locally Synchronous (GALS) has been proposed, providing both asynchronous and synchronous concurrency while preserving the advantages of the synchronous approach. A system modelled using GALS MoC consists of a set of subsystems at the top level, called Clock-Domains (CDs), running asynchronously to each other. A CD comprises a set of reactions that are running concurrently and synchronously. Recently, the insatiable demand for performance due to the growing complexity and more stringent timing requirements of embedded applications make it inevitable to integrate more Processing Elements (PEs) in a single chip, forming multi-core architectures. Moreover, in order to meet the resource usage constraints, shared resources (such as shared memory and input/output) are typically found in multi-core architecture, which are accessed through a shared bus to which all the PEs are connected. Due to the lack of methodologies and tools for timing analysis and design optimization of GALS systems running on multi-core architectures, statically and accurately determining the timing characteristics of the systems still remains a challenge. In addition, the overhead of resolving contentions induced by accessing shared resources simultaneously cannot be underestimated because it may even offset the benefit brought by integrating multiple PEs. This thesis focuses on timing analysis and design optimization of GALS systems running on time-predictable multi-core architectures. Starting with a scalable Timing Analysis and Code Optimization (TACO) framework targeting a CD running on a tandem processor platform, a series of timing analysis and design optimization techniques are presented in this thesis. A methodology based on design space exploration is proposed for finding the schedule with Guaranteed Reaction Time (GRT) for a CD running on a customizable multi-core architecture. This methodology is further extended by incorporating a novel bus arbitration policy, named Application-Specific Time Division Multiple Access (ASTDMA), to improve the efficiency of bus bandwidth utilization and hence reduce the GRT for each CD in a GALS system. Finally, a methodology is presented for minimizing resource usage for a GALS system with asynchronous execution of CDs on a multi-core architecture with shared resources. Another novel bus arbitration policy, named weighted TDMA, is employed by this methodology in order to improve the efficiency of bus bandwidth utilization. Experimental results show that the proposed optimization techniques effectively improve the worst-case performance of the system while maintaining time-predictability. Due to the fact that the timing analysis is only achievable on a time-predictable execution platform, the details of the target hardware architectures are given for each technique presented in this thesis.




Providing Predictability for High End Embedded Systems


Book Description

Real-Time systems require logical and temporal correctness. Temporal correctness implies that each task running on the system has a deadline that needs to be met. To ensure that the deadlines are met, the scheduler of a real-time system needs information about the worst-case execution time (WCET) of each task. The task of determining the WCET of a task on a particular architecture is called timing analysis. Analysis techniques are broadly classified as static and dynamic. Dynamic timing analysis does not provide safe WCET bounds. Static analysis cannot be used on modern processors with features like out-of-order execution, dynamic branch prediction and speculative execution. Such features, while improving the average-case performance, induce counter-intuitive timing behavior known as timing anomalies. Hence, designers of hard real-time systems are forced to use architectures with simple in-order pipelines. This thesis develops and demonstrates the benefits of a hybrid timing analysis technique (combining static and dynamic analysis) on a processor simulator and on FPGA hardware to provide tight and safe WCET bounds. The technique makes the following contributions: * It enhances the realm of design for hard real-time systems by allowing the designers to use complex out-of-order architectures that exhibit timing anomalies. * It eliminates the need for complex prototyping of hardware for static timing analysis since the analysis can be done directly on the actual hardware. This has the added advantage of eliminating timing inaccuracies arising out of variations in manufacturing technology. * The method helps manufacturers to protect their Intellectual Property by eliminating the need to disclose architectural details for the purpose of static timing analysis.







Architecture of Computing Systems


Book Description

This book constitutes the proceedings of the 34th International Conference on Architecture of Computing Systems, ARCS 2021, held virtually in July 2021. The 12 full papers in this volume were carefully reviewed and selected from 24 submissions. 2 workshop papers (VEFRE) are also included. ARCS has always been a conference attracting leading-edge research outcomes in Computer Architecture and Operating Systems, including a wide spectrum of topics ranging from fully integrated, self-powered embedded systems up to high-performance computing systems. It also provides a platform covering newly emerging and cross-cutting topics, such as autonomous and ubiquitous systems, reconfigurable computing and acceleration, neural networks and artificial intelligence. The selected papers cover a variety of topics from the ARCS core domains, including heterogeneous computing, memory optimizations, and organic computing.




Techniques for Building Timing-Predictable Embedded Systems


Book Description

This book describes state-of-the-art techniques for designing real-time computer systems. The author shows how to estimate precisely the effect of cache architecture on the execution time of a program, how to dispatch workload on multicore processors to optimize resources, while meeting deadline constraints, and how to use closed-form mathematical approaches to characterize highly variable workloads and their interaction in a networked environment. Readers will learn how to deal with unpredictable timing behaviors of computer systems on different levels of system granularity and abstraction.




Cache Modeling for Timing Analysis in Real-Time Systems


Book Description

Caches in Embedded Systems improve average case performance, but they are a source of unpredictability, especially in the worst case software timing analysis with the consideration of data caches. This is a critical problem in real-time systems, where tight Worst Case Execution Time (WCET) is required for their schedulability analysis. Few works have studied data cache impacts on the WCET of programs, but only for programs with no input-dependent data accesses. To provide an efficient and accurate analysis for input-dependent data accesses, we develop classified cache architecture and a WCET framework for the architecture. Our work classifies predictable and unpredictable accesses, then allocates them into predictable caches and unpredictable caches accordingly, and uses CME (Cache Miss Equations) and our reuse-distance-based algorithm for their timing analysis respectively. Compared with simulation, our analysis framework produces a very good WCET tightness, and our architecture creates almost no hardware overhead or performance degradation. In addition, we examine NP-completeness of WCET analysis. We also explore data allocation techniques to improve system performance.




Design Space Exploration and Resource Management of Multi/Many-Core Systems


Book Description

The increasing demand of processing a higher number of applications and related data on computing platforms has resulted in reliance on multi-/many-core chips as they facilitate parallel processing. However, there is a desire for these platforms to be energy-efficient and reliable, and they need to perform secure computations for the interest of the whole community. This book provides perspectives on the aforementioned aspects from leading researchers in terms of state-of-the-art contributions and upcoming trends.




The Compiler Design Handbook


Book Description

Today’s embedded devices and sensor networks are becoming more and more sophisticated, requiring more efficient and highly flexible compilers. Engineers are discovering that many of the compilers in use today are ill-suited to meet the demands of more advanced computer architectures. Updated to include the latest techniques, The Compiler Design Handbook, Second Edition offers a unique opportunity for designers and researchers to update their knowledge, refine their skills, and prepare for emerging innovations. The completely revised handbook includes 14 new chapters addressing topics such as worst case execution time estimation, garbage collection, and energy aware compilation. The editors take special care to consider the growing proliferation of embedded devices, as well as the need for efficient techniques to debug faulty code. New contributors provide additional insight to chapters on register allocation, software pipelining, instruction scheduling, and type systems. Written by top researchers and designers from around the world, The Compiler Design Handbook, Second Edition gives designers the opportunity to incorporate and develop innovative techniques for optimization and code generation.