It's about time
暂无分享,去创建一个
Summary form only given. All widely used software abstractions lack temporal semantics. The notion of correct execution of a program written in every widely-used programming language and in nearly every processor instruction-set today does not depend on the timing of the execution. Computer architects exploit the fact that timing is irrelevant to correctness with aggressive performance-enhancing techniques such as speculative execution, branch prediction, dynamic dispatch, cache memories, virtual memory, etc. While these techniques improve average case performance, they do so at the expense of controllability, repeatability, and predictability of timing. But temporal behavior matters in almost all systems, but most particularly in networked embedded systems. Even in systems with no particular real-time requirements, timing of programs is relevant to the value delivered by programs, and in the case of concurrent and distributed programs, also affects the functionality. In systems with real-time requirements, including most embedded systems, temporal behavior affects not just the value delivered by a system but also its correctness. This talk will argue that time can and must become part of the semantics of programs and computer architectures. To illustrate that this is both practical and useful, we will describe recent efforts at Berkeley in the design and analysis of timing-centric software systems. In particular, we will focus on two projects, PRET, which seeks to provide computing platforms with repeatable timing, and PTIDES, which provides a programming model for distributed real-time systems.