Building timing predictable embedded systems

Building timing predictable embedded systems
复制标题

DOI:
10.1145/2560033
复制
发表时间:
2014-03
期刊:
ACM Transactions on Embedded Computing Systems (TECS)
影响因子:
--
通讯作者:
Philip Axer;R. Ernst;H. Falk;A. Girault;Daniel Grund;Nan Guan;B. Jonsson;P. Marwedel;J. Reineke-J.-Re
Philip Axer;R. Ernst;H. Falk;A. Girault;Daniel Grund;Nan Guan;B. Jonsson;P. Marwedel;J. Reineke-J.-Re
中科院分区:
其他
文献类型:
--
作者:
Philip Axer;R. Ernst;H. Falk;A. Girault;Daniel Grund;Nan Guan;B. Jonsson;P. Marwedel;J. Reineke-J.-Re

文献摘要

被引文献

相似文献

嵌入式系统与通用计算系统的区别在于需要满足严格的时序要求,通常在可用资源的约束下。可预测系统设计关注的是构建时序要求可以先验保证的系统的挑战。也许自相矛盾的是,这个问题已经变得更加困难的性能增强架构元素的引入,如缓存,管道和多线程,这引入了很大程度的不确定性,使保证更难提供。这篇文章的目的是总结目前的艺术在研究如何建立可预测的,但性能系统。我们建议精确的定义为“可预测性”的概念,并在嵌入式系统设计的不同抽象层次的可预测性问题。首先,我们考虑处理器指令集的时序可预测性。此后,我们考虑如何编程语言可以配备可预测的时序语义,涵盖了基于语言的方法,使用同步编程范式,以及一个环境,提供时序语义的主流编程语言(在这种情况下C)。我们提出了实现多核定时可预测性的技术。最后,我们讨论了如何处理可预测性的网络嵌入式系统的水平,随机发生的错误必须考虑。
A large class of embedded systems is distinguished from general-purpose computing systems by the need to satisfy strict requirements on timing, often under constraints on available resources. Predictable system design is concerned with the challenge of building systems for which timing requirements can be guaranteed a priori. Perhaps paradoxically, this problem has become more difficult by the introduction of performance-enhancing architectural elements, such as caches, pipelines, and multithreading, which introduce a large degree of uncertainty and make guarantees harder to provide. The intention of this article is to summarize the current state of the art in research concerning how to build predictable yet performant systems. We suggest precise definitions for the concept of “predictability”, and present predictability concerns at different abstraction levels in embedded system design. First, we consider timing predictability of processor instruction sets. Thereafter, we consider how programming languages can be equipped with predictable timing semantics, covering both a language-based approach using the synchronous programming paradigm, as well as an environment that provides timing semantics for a mainstream programming language (in this case C). We present techniques for achieving timing predictability on multicores. Finally, we discuss how to handle predictability at the level of networked embedded systems where randomly occurring errors must be considered.