首页 > 最新文献

Software and Compilers for Embedded Systems最新文献

英文 中文
Modeling shared cache and bus in multi-cores for timing analysis 多核共享缓存和总线建模,用于时序分析
Pub Date : 2010-06-28 DOI: 10.1145/1811212.1811220
Sudipta Chattopadhyay, Abhik Roychoudhury, T. Mitra
Timing analysis of concurrent programs running on multi-core platforms is currently an important problem. The key to solving this problem is to accurately model the timing effects of shared resources in multi-cores, namely shared cache and bus. In this paper, we provide an integrated timing analysis framework that captures timing effects of both shared cache and shared bus. We also develop a cycle-accurate simulation infra-structure to evaluate the precision of our analysis. Experimental results from a large fragment of an in-orbit spacecraft software show that our analysis produces around 20% over-estimation over simulation results.
在多核平台上运行的并发程序的时序分析是当前的一个重要问题。解决这一问题的关键是准确建模多核共享资源(即共享缓存和共享总线)的时序效应。在本文中,我们提供了一个集成的时序分析框架,可以捕获共享缓存和共享总线的时序影响。我们还开发了一个周期精确的模拟基础设施来评估我们分析的精度。来自在轨航天器软件的大碎片的实验结果表明,我们的分析比模拟结果产生了大约20%的高估。
{"title":"Modeling shared cache and bus in multi-cores for timing analysis","authors":"Sudipta Chattopadhyay, Abhik Roychoudhury, T. Mitra","doi":"10.1145/1811212.1811220","DOIUrl":"https://doi.org/10.1145/1811212.1811220","url":null,"abstract":"Timing analysis of concurrent programs running on multi-core platforms is currently an important problem. The key to solving this problem is to accurately model the timing effects of shared resources in multi-cores, namely shared cache and bus. In this paper, we provide an integrated timing analysis framework that captures timing effects of both shared cache and shared bus. We also develop a cycle-accurate simulation infra-structure to evaluate the precision of our analysis. Experimental results from a large fragment of an in-orbit spacecraft software show that our analysis produces around 20% over-estimation over simulation results.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-06-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126817204","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 100
A compiler-based infrastructure for fault-tolerant co-design 用于容错协同设计的基于编译器的基础结构
Pub Date : 2010-06-28 DOI: 10.1145/1811212.1811218
Felipe Restrepo-Calle, A. Martínez-Álvarez, H. Guzmán-Miranda, F. R. Palomo, M. Aguirre, S. Cuenca-Asensi
The protection of processor-based systems to mitigate the harmful effects of transient faults (hardening) is gaining importance as technology shrinks. Hybrid hardware/software hardening approaches are promising alternatives in the design of such fault tolerant systems. This paper presents a compiler-based infrastructure for facilitating the exploration of the design space between hardware-only and software-only fault tolerant techniques. The compiler design is based on a generic architecture that facilitates the implementation of software-based techniques, providing an uniform isolated-from-target hardening core. In this way, these methods can be implemented in an architecture independent way and can easily integrate new protection mechanisms to automatically produce hardened code. The infrastructure includes a simulator that provides information about memory and execution time overheads to aid the designer in the co-design decisions. The tool-chain is complemented by a hardware fault emulation tool that allows to measure the fault coverage of the different solutions running on the real system. A case study was implemented allowing to evaluate the flexibility of the infrastructure to fit the reliability requirements of the system within their memory and performance restrictions.
随着技术的发展,保护基于处理器的系统以减轻瞬态故障(硬化)的有害影响变得越来越重要。混合硬件/软件加固方法是设计此类容错系统的有希望的替代方法。本文提出了一种基于编译器的基础结构,用于探索纯硬件和纯软件容错技术之间的设计空间。编译器的设计基于通用架构,该架构有助于实现基于软件的技术,提供统一的与目标隔离的强化核心。通过这种方式,这些方法可以以独立于体系结构的方式实现,并且可以轻松地集成新的保护机制来自动生成强化的代码。该基础设施包括一个模拟器,该模拟器提供有关内存和执行时间开销的信息,以帮助设计人员进行协同设计决策。工具链由硬件故障仿真工具补充,该工具允许测量在实际系统上运行的不同解决方案的故障覆盖率。实现了一个案例研究,以评估基础设施的灵活性,以便在内存和性能限制范围内满足系统的可靠性需求。
{"title":"A compiler-based infrastructure for fault-tolerant co-design","authors":"Felipe Restrepo-Calle, A. Martínez-Álvarez, H. Guzmán-Miranda, F. R. Palomo, M. Aguirre, S. Cuenca-Asensi","doi":"10.1145/1811212.1811218","DOIUrl":"https://doi.org/10.1145/1811212.1811218","url":null,"abstract":"The protection of processor-based systems to mitigate the harmful effects of transient faults (hardening) is gaining importance as technology shrinks. Hybrid hardware/software hardening approaches are promising alternatives in the design of such fault tolerant systems. This paper presents a compiler-based infrastructure for facilitating the exploration of the design space between hardware-only and software-only fault tolerant techniques. The compiler design is based on a generic architecture that facilitates the implementation of software-based techniques, providing an uniform isolated-from-target hardening core. In this way, these methods can be implemented in an architecture independent way and can easily integrate new protection mechanisms to automatically produce hardened code. The infrastructure includes a simulator that provides information about memory and execution time overheads to aid the designer in the co-design decisions. The tool-chain is complemented by a hardware fault emulation tool that allows to measure the fault coverage of the different solutions running on the real system. A case study was implemented allowing to evaluate the flexibility of the infrastructure to fit the reliability requirements of the system within their memory and performance restrictions.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"103 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-06-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115737074","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Register allocation deconstructed 解析寄存器分配
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543824
D. Koes, S. Goldstein
Register allocation is a fundamental part of any optimizing compiler. Effectively managing the limited register resources of the constrained architectures commonly found in embedded systems is essential in order to maximize code quality. In this paper we deconstruct the register allocation problem into distinct components: coalescing, spilling, move insertion, and assignment. Using an optimal register allocation framework, we empirically evaluate the importance of each of the components, the impact of component integration, and the effectiveness of existing heuristics. We evaluate code quality both in terms of code performance and code size and consider four distinct instruction set architectures: ARM, Thumb, x86, and x86-64. The results of our investigation reveal general principles for register allocation design.
寄存器分配是任何优化编译器的基本部分。为了最大限度地提高代码质量,有效地管理嵌入式系统中常见的受限架构的有限寄存器资源是必不可少的。本文将寄存器分配问题分解为不同的组成部分:合并、溢出、移动插入和赋值。利用最优寄存器分配框架,我们对每个组件的重要性、组件集成的影响以及现有启发式的有效性进行了实证评估。我们从代码性能和代码大小两方面评估代码质量,并考虑四种不同的指令集架构:ARM、Thumb、x86和x86-64。我们的调查结果揭示了寄存器分配设计的一般原则。
{"title":"Register allocation deconstructed","authors":"D. Koes, S. Goldstein","doi":"10.1145/1543820.1543824","DOIUrl":"https://doi.org/10.1145/1543820.1543824","url":null,"abstract":"Register allocation is a fundamental part of any optimizing compiler. Effectively managing the limited register resources of the constrained architectures commonly found in embedded systems is essential in order to maximize code quality. In this paper we deconstruct the register allocation problem into distinct components: coalescing, spilling, move insertion, and assignment. Using an optimal register allocation framework, we empirically evaluate the importance of each of the components, the impact of component integration, and the effectiveness of existing heuristics. We evaluate code quality both in terms of code performance and code size and consider four distinct instruction set architectures: ARM, Thumb, x86, and x86-64. The results of our investigation reveal general principles for register allocation design.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121329020","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Precise simulation of interrupts using a rollback mechanism 使用回滚机制精确模拟中断
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543833
F. Brandner
Instruction set simulation based on dynamic compilation is a popular approach that focuses on fast simulation of user-visible features according to the instruction-set-architecture abstraction of a given processor. Simulation of interrupts, even though they are rare events, is very expensive for these simulators, because interrupts may occur anytime at any phase of the programs execution. Many optimizations in compiling simulators can not be applied or become less beneficial in the presence of interrupts. We propose a rollback mechanism in order to enable effective optimizations to be combined with cycle accurate handling of interrupts. Our simulator speculatively executes instructions of the emulated processor assuming that no interrupts will occur. At restore-points this assumption is verified and the processor state reverted to an earlier restore-point if an interrupt did actually occur. All architecture dependent simulation functions are derived using an architecture description language that is capable to automatically generate optimized simulators using our new approach. We are able to eliminate most of the overhead usually induced by interrupts. The simulation speed is improved up to a factor of 2.95 and compilation time is reduced by nearly 30% even for lower compilation thresholds.
基于动态编译的指令集仿真是一种流行的方法,它侧重于根据给定处理器的指令集体系结构抽象对用户可见特征进行快速仿真。中断的模拟,即使它们是罕见的事件,对于这些模拟器来说也是非常昂贵的,因为中断可能在程序执行的任何阶段的任何时间发生。在存在中断的情况下,编译模拟器中的许多优化不能应用或变得不那么有益。我们提出了一个回滚机制,以使有效的优化与周期精确的中断处理相结合。我们的模拟器推测性地执行仿真处理器的指令,假设不会发生中断。在恢复点上验证这个假设,如果中断确实发生,处理器状态将恢复到先前的恢复点。所有与体系结构相关的仿真功能都是使用体系结构描述语言派生的,该语言能够使用我们的新方法自动生成优化的模拟器。我们能够消除通常由中断引起的大部分开销。仿真速度提高了2.95倍,即使降低了编译阈值,编译时间也减少了近30%。
{"title":"Precise simulation of interrupts using a rollback mechanism","authors":"F. Brandner","doi":"10.1145/1543820.1543833","DOIUrl":"https://doi.org/10.1145/1543820.1543833","url":null,"abstract":"Instruction set simulation based on dynamic compilation is a popular approach that focuses on fast simulation of user-visible features according to the instruction-set-architecture abstraction of a given processor. Simulation of interrupts, even though they are rare events, is very expensive for these simulators, because interrupts may occur anytime at any phase of the programs execution. Many optimizations in compiling simulators can not be applied or become less beneficial in the presence of interrupts.\u0000 We propose a rollback mechanism in order to enable effective optimizations to be combined with cycle accurate handling of interrupts. Our simulator speculatively executes instructions of the emulated processor assuming that no interrupts will occur. At restore-points this assumption is verified and the processor state reverted to an earlier restore-point if an interrupt did actually occur. All architecture dependent simulation functions are derived using an architecture description language that is capable to automatically generate optimized simulators using our new approach.\u0000 We are able to eliminate most of the overhead usually induced by interrupts. The simulation speed is improved up to a factor of 2.95 and compilation time is reduced by nearly 30% even for lower compilation thresholds.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"70 8","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120989324","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
A design flow based on a domain specific language to concurrent development of device drivers and device controller simulation models 一种基于领域特定语言的设计流程,用于设备驱动程序和设备控制器仿真模型的并发开发
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543830
E. B. Lisboa, Luciano Silva, Igino Chaves, Thiago Lima, E. Barros
Nowadays, embedded Systems must communicate with different peripheral devices. The communication structure is implemented by a combined solution of hardware and software. The device controller is the hardware that implements, in general, complex communication protocols. On the other hand, the device driver provides transparent access to the functionalities of the device and depends on the architecture of the device controller. So, the design of the communication structure demands great effort, considerable development time and is very susceptible to errors. To minimize these issues, this paper presents an approach to the concurrent development of device controller simulation models and of the respective device drivers. Also a domain specific language, called DevC, is proposed to describe device controller features in a high level of abstraction. In this paper a brief introduction to this language is presented. From the specifications described in DevC, controller models and device drivers are synthesized. Both the device controller and the driver are first validated using a hardware virtual platform to reduce simulation time, and then they are validated on real hardware. Some controllers, such as a serial, as well as a text and graphic lcd, have been developed to validate the approach proposed.
如今,嵌入式系统必须与不同的外围设备进行通信。通信结构采用硬件和软件相结合的解决方案实现。一般来说,设备控制器是实现复杂通信协议的硬件。另一方面,设备驱动程序提供对设备功能的透明访问,并依赖于设备控制器的体系结构。因此,通信结构的设计工作量大,开发时间长,而且很容易出错。为了尽量减少这些问题,本文提出了一种同时开发设备控制器仿真模型和相应设备驱动程序的方法。此外,还提出了一种称为DevC的领域特定语言,用于在高级抽象中描述设备控制器的特性。本文对该语言作了简要介绍。从DevC中描述的规范中,综合了控制器模型和设备驱动程序。为了减少仿真时间,首先使用硬件虚拟平台对设备控制器和驱动程序进行验证,然后在实际硬件上进行验证。一些控制器,如串行控制器,以及文本和图形lcd,已被开发来验证所提出的方法。
{"title":"A design flow based on a domain specific language to concurrent development of device drivers and device controller simulation models","authors":"E. B. Lisboa, Luciano Silva, Igino Chaves, Thiago Lima, E. Barros","doi":"10.1145/1543820.1543830","DOIUrl":"https://doi.org/10.1145/1543820.1543830","url":null,"abstract":"Nowadays, embedded Systems must communicate with different peripheral devices. The communication structure is implemented by a combined solution of hardware and software. The device controller is the hardware that implements, in general, complex communication protocols. On the other hand, the device driver provides transparent access to the functionalities of the device and depends on the architecture of the device controller. So, the design of the communication structure demands great effort, considerable development time and is very susceptible to errors. To minimize these issues, this paper presents an approach to the concurrent development of device controller simulation models and of the respective device drivers. Also a domain specific language, called DevC, is proposed to describe device controller features in a high level of abstraction. In this paper a brief introduction to this language is presented. From the specifications described in DevC, controller models and device drivers are synthesized. Both the device controller and the driver are first validated using a hardware virtual platform to reduce simulation time, and then they are validated on real hardware. Some controllers, such as a serial, as well as a text and graphic lcd, have been developed to validate the approach proposed.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131800400","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
The canals language and its compiler 运河语言及其编译器
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543829
Andreas Dahlin, Johan Ersfolk, Guyfu Yang, Haitham Habli, J. Lilius
Stream-based computing as embodied in stream-programming environments and streaming languages has attracted quite a lot of interest as a potential solution to programming many-cores. Modern embedded multimedia devices embody many characteristics of stream-based computing with the additional constraint on energy-consumption. In this paper we present a new streaming language Canals together with its compiler. Canals proposes the following novel features: 1. The ability to describe the scheduling of the computation kernels: Canals has a sub-language for describing schedulers and run-time system support. 2. The ability to detect type of data on the inputs of a network (the scheduling is often dependent on the data at run-time): Canals provides bit-stream parsing through automatic deserialization of data in network inputs. 3. Choice of synchronization mechanism between computational kernels and the scheduler to avoid overheads. This is implemented in the run-time system through the Hardware Abstraction Layer (HAL). We describe the language and the code-generators for the Cell processor and the Altera FPGA board.
流编程环境和流语言中包含的基于流的计算作为多核编程的潜在解决方案吸引了很多人的兴趣。现代嵌入式多媒体设备体现了流计算的许多特点,同时附加了对能耗的限制。本文提出了一种新的流媒体语言Canals及其编译器。卡纳尔斯提出了以下新特点:描述计算内核调度的能力:Canals有一个子语言,用于描述调度程序和运行时系统支持。2. 检测网络输入数据类型的能力(调度通常依赖于运行时的数据):Canals通过对网络输入数据的自动反序列化提供位流解析。3.选择计算内核和调度器之间的同步机制,以避免开销。这是通过硬件抽象层(HAL)在运行时系统中实现的。我们描述了Cell处理器和Altera FPGA板的语言和代码生成器。
{"title":"The canals language and its compiler","authors":"Andreas Dahlin, Johan Ersfolk, Guyfu Yang, Haitham Habli, J. Lilius","doi":"10.1145/1543820.1543829","DOIUrl":"https://doi.org/10.1145/1543820.1543829","url":null,"abstract":"Stream-based computing as embodied in stream-programming environments and streaming languages has attracted quite a lot of interest as a potential solution to programming many-cores. Modern embedded multimedia devices embody many characteristics of stream-based computing with the additional constraint on energy-consumption. In this paper we present a new streaming language Canals together with its compiler. Canals proposes the following novel features: 1. The ability to describe the scheduling of the computation kernels: Canals has a sub-language for describing schedulers and run-time system support. 2. The ability to detect type of data on the inputs of a network (the scheduling is often dependent on the data at run-time): Canals provides bit-stream parsing through automatic deserialization of data in network inputs. 3. Choice of synchronization mechanism between computational kernels and the scheduler to avoid overheads. This is implemented in the run-time system through the Hardware Abstraction Layer (HAL). We describe the language and the code-generators for the Cell processor and the Altera FPGA board.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"40 7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133599228","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Accelerating WCET-driven optimizations by the invariant path paradigm: a case study of loop unswitching 通过不变路径范式加速wcet驱动的优化:循环切换的案例研究
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543823
Paul Lokuciejewski, Fatih Gedikli, P. Marwedel
The worst-case execution time (WCET) being the upper bound of the maximum execution time corresponds to the longest path through the program's control flow graph. Its reduction is the objective of a WCET optimization. Unlike average-case execution time compiler optimizations which consider a static (most frequently executed) path, the longest path is variable since its optimization might result in another path becoming the effective longest path. To keep path information valid, WCET optimizations typically perform a time-consuming static WCET analysis after each code modification to ensure that subsequent optimization steps operate on the critical path. However, a code modification does not always lead to a path switch, making many WCET analyses superfluous. To cope with this problem, we propose a new paradigm called Invariant Path which eliminates the pessimism by indicating whether a path update is mandatory. To demonstrate the paradigm's practical use, we developed a novel optimization called WCET-driven Loop Unswitching which exploits the Invariant Path information. In a case study, our optimization reduced the WCET of real-world benchmarks by up to 17.4%, while exploiting the Invariant Path paradigm led to a reduction of the optimization time by 57.5% on average.
最坏情况执行时间(WCET)是最大执行时间的上界,对应于通过程序控制流图的最长路径。它的减少是WCET优化的目标。与考虑静态(最频繁执行)路径的平均执行时间编译器优化不同,最长路径是可变的,因为它的优化可能导致另一条路径成为有效的最长路径。为了保持路径信息的有效性,WCET优化通常在每次代码修改后执行耗时的静态WCET分析,以确保后续的优化步骤在关键路径上运行。然而,代码修改并不总是导致路径切换,这使得许多WCET分析变得多余。为了解决这个问题,我们提出了一个新的范式,称为不变路径,它通过指示路径更新是否是强制性的来消除悲观情绪。为了演示范例的实际应用,我们开发了一种新的优化方法,称为wcet驱动的环路切换,它利用了不变路径信息。在一个案例研究中,我们的优化将实际基准测试的WCET减少了17.4%,而利用不变路径范式将优化时间平均减少了57.5%。
{"title":"Accelerating WCET-driven optimizations by the invariant path paradigm: a case study of loop unswitching","authors":"Paul Lokuciejewski, Fatih Gedikli, P. Marwedel","doi":"10.1145/1543820.1543823","DOIUrl":"https://doi.org/10.1145/1543820.1543823","url":null,"abstract":"The worst-case execution time (WCET) being the upper bound of the maximum execution time corresponds to the longest path through the program's control flow graph. Its reduction is the objective of a WCET optimization. Unlike average-case execution time compiler optimizations which consider a static (most frequently executed) path, the longest path is variable since its optimization might result in another path becoming the effective longest path.\u0000 To keep path information valid, WCET optimizations typically perform a time-consuming static WCET analysis after each code modification to ensure that subsequent optimization steps operate on the critical path. However, a code modification does not always lead to a path switch, making many WCET analyses superfluous. To cope with this problem, we propose a new paradigm called Invariant Path which eliminates the pessimism by indicating whether a path update is mandatory. To demonstrate the paradigm's practical use, we developed a novel optimization called WCET-driven Loop Unswitching which exploits the Invariant Path information. In a case study, our optimization reduced the WCET of real-world benchmarks by up to 17.4%, while exploiting the Invariant Path paradigm led to a reduction of the optimization time by 57.5% on average.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"278 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131497529","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Separate compilation for synchronous programs 同步程序的单独编译
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543822
J. Brandt, K. Schneider
Esterel and other imperative synchronous languages offer a rich set of statements, which can be used to conveniently describe complex control behaviors in a concise, but yet precise way. In particular, the ability to arbitrarily nest all kinds of statements including loops, local declarations, sequential and parallel control, as well as several kinds of preemption statements leads to a powerful programming language. However, this orthogonal design imposes difficult problems for the modular or separate compilation, which has to deal with special problems like the instantaneous reincarnation of locally declared variables. This paper presents a compilation procedure allowing to separately compile modules of a synchronous language. Our approach is based on two new achievements: First, we derive the information that is required for a linker to combine already compiled modules. This information is stored in a file written in an intermediate format, which is the target of our compilation procedure and the source of the linker. Second, we describe a compilation procedure for a typical imperative synchronous language to generate this intermediate format. We have implemented the approach in the upcoming version 2.0 of our Averest system.
Esterel和其他命令式同步语言提供了丰富的语句集,可用于方便地以简洁而精确的方式描述复杂的控制行为。特别是,任意嵌套各种语句的能力,包括循环、局部声明、顺序和并行控制,以及几种抢占语句,这些都造就了强大的编程语言。然而,这种正交设计给模块化或独立编译带来了难题,它们必须处理一些特殊问题,比如局部声明变量的即时转世。本文提出了一个编译程序,可以对同步语言的各个模块分别进行编译。我们的方法基于两个新的成就:首先,我们获得了链接器组合已编译模块所需的信息。此信息存储在以中间格式编写的文件中,该文件是编译过程的目标和链接器的源。其次,我们描述了典型的命令式同步语言生成这种中间格式的编译过程。我们已经在即将到来的Averest系统2.0版本中实现了这种方法。
{"title":"Separate compilation for synchronous programs","authors":"J. Brandt, K. Schneider","doi":"10.1145/1543820.1543822","DOIUrl":"https://doi.org/10.1145/1543820.1543822","url":null,"abstract":"Esterel and other imperative synchronous languages offer a rich set of statements, which can be used to conveniently describe complex control behaviors in a concise, but yet precise way. In particular, the ability to arbitrarily nest all kinds of statements including loops, local declarations, sequential and parallel control, as well as several kinds of preemption statements leads to a powerful programming language. However, this orthogonal design imposes difficult problems for the modular or separate compilation, which has to deal with special problems like the instantaneous reincarnation of locally declared variables.\u0000 This paper presents a compilation procedure allowing to separately compile modules of a synchronous language. Our approach is based on two new achievements: First, we derive the information that is required for a linker to combine already compiled modules. This information is stored in a file written in an intermediate format, which is the target of our compilation procedure and the source of the linker. Second, we describe a compilation procedure for a typical imperative synchronous language to generate this intermediate format. We have implemented the approach in the upcoming version 2.0 of our Averest system.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121175925","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 26
Certifying deadlock-freedom for BIP models 认证BIP模型的死锁自由
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543832
J. Blech, Michaël Périn
The BIP framework provides a methodology supported by a tool chain for developing software for embedded systems. The design of a BIP system follows the decomposition in behavior, interaction and priority. The first step comprises the division of desired behavior of a system into components. In a second step interactions and their priorities are added between the components. Finally, machine code is generated from the BIP model. While adding interactions it is possible to overconstrain a system resulting in potential deadlocks. The tool chain crucially depends on an automatic tool, D-Finder, which checks for deadlock-freedom. This paper reports on guaranteeing the correctness of the verdict of D-Finder. We address the problem of formally proving deadlock-freedom of an embedded system in a way that is comprehensible for third party users and other tools. We propose the automatic generation of certificates for each BIP model declared safe by D-Finder. These certificates comprise a proof of deadlock-freedom of the BIP model which can be checked by an independent checker. We use the Coq theorem prover as certificate checker. Thus, bringing the high level of confidence of a formal proof to the deadlock analysis results. With the help of certificates one gets a deadlock-freedom guarantee of BIP models without having to trust or even take a look at the deadlock checking tool. The proof of deadlock-freedom fundamentally relies on the computation of invariant properties of the considered BIP model which is carried out by D-Finder and serves as basis for certificate generation. Encapsulating these invariants into certificates and checking them is the most important subtask of our methodology for guaranteeing deadlock-freedom.
BIP框架为嵌入式系统软件开发提供了一种由工具链支持的方法。BIP系统的设计遵循行为、交互和优先级的分解。第一步包括将系统的期望行为划分为组件。在第二步中,在组件之间添加交互及其优先级。最后,由BIP模型生成机器码。在添加交互时,可能会过度约束系统,从而导致潜在的死锁。工具链主要依赖于自动工具D-Finder,该工具可以检查死锁是否存在。本文报道了如何保证D-Finder判定的正确性。我们以一种第三方用户和其他工具可以理解的方式正式证明嵌入式系统的死锁自由。我们建议为D-Finder宣布安全的每个BIP模型自动生成证书。这些证书包含了一个证明,证明了BIP模型的死锁自由,可以由一个独立的检查器进行检查。我们使用Coq定理证明器作为证书检查器。因此,为死锁分析结果带来了形式化证明的高度置信度。在证书的帮助下,您可以获得BIP模型的死锁自由保证,而无需信任甚至查看死锁检查工具。死锁自由的证明从根本上依赖于被考虑的BIP模型的不变属性的计算,该模型由D-Finder执行,并作为证书生成的基础。将这些不变量封装到证书中并检查它们是保证死锁自由的方法中最重要的子任务。
{"title":"Certifying deadlock-freedom for BIP models","authors":"J. Blech, Michaël Périn","doi":"10.1145/1543820.1543832","DOIUrl":"https://doi.org/10.1145/1543820.1543832","url":null,"abstract":"The BIP framework provides a methodology supported by a tool chain for developing software for embedded systems. The design of a BIP system follows the decomposition in behavior, interaction and priority. The first step comprises the division of desired behavior of a system into components. In a second step interactions and their priorities are added between the components. Finally, machine code is generated from the BIP model. While adding interactions it is possible to overconstrain a system resulting in potential deadlocks. The tool chain crucially depends on an automatic tool, D-Finder, which checks for deadlock-freedom.\u0000 This paper reports on guaranteeing the correctness of the verdict of D-Finder. We address the problem of formally proving deadlock-freedom of an embedded system in a way that is comprehensible for third party users and other tools. We propose the automatic generation of certificates for each BIP model declared safe by D-Finder. These certificates comprise a proof of deadlock-freedom of the BIP model which can be checked by an independent checker. We use the Coq theorem prover as certificate checker. Thus, bringing the high level of confidence of a formal proof to the deadlock analysis results.\u0000 With the help of certificates one gets a deadlock-freedom guarantee of BIP models without having to trust or even take a look at the deadlock checking tool. The proof of deadlock-freedom fundamentally relies on the computation of invariant properties of the considered BIP model which is carried out by D-Finder and serves as basis for certificate generation. Encapsulating these invariants into certificates and checking them is the most important subtask of our methodology for guaranteeing deadlock-freedom.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132223268","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Implementing AUTOSAR scheduling and resource management on an embedded SMT processor 在嵌入式SMT处理器上实现AUTOSAR调度和资源管理
Pub Date : 2009-04-23 DOI: 10.1145/1543820.1543828
Florian Kluge, Chenglong Yu, Jörg Mische, S. Uhrig, T. Ungerer
The AUTOSAR specification provides a common standard for software development in the automotive domain. Its functional definition is based on the concept of single-threaded processors. Recent trends in embedded processors provide new possibilities for more powerful processors using parallel execution techniques like multithreading and multi-cores. We discuss the implementation of the AUTOSAR operating system interface on a modern simultaneous multithreaded (SMT) processor. Several problems in resource management arise when AUTOSAR tasks are executed concurrently on a multithreaded processor. Especially deadlocks, which should be averted through the priority ceiling protocol, can reoccur. We solve this problems by extending AUTOSAR OS by the Task Filtering Method to avoid deadlocks in multithreaded processors. Other synchronisation problems arising through the parallel execution of tasks are solved through the use of lock-free data structures. In the end, we propose some extensions to the AUTOSAR specification so it can be used in software development for SMT processors. We develop some additional requirements on such SMT processors to enable the use of the Task Filtering Method. Our work gives also perspectives for software development on upcoming multi-core processors in the automotive domain.
AUTOSAR规范为汽车领域的软件开发提供了一个通用标准。它的功能定义基于单线程处理器的概念。嵌入式处理器的最新趋势为使用多线程和多核等并行执行技术的更强大的处理器提供了新的可能性。我们讨论了AUTOSAR操作系统接口在现代同步多线程(SMT)处理器上的实现。当AUTOSAR任务在多线程处理器上并发执行时,会出现资源管理中的几个问题。特别是死锁可能会再次发生,而死锁应该通过优先级上限协议来避免。我们通过任务过滤方法扩展AUTOSAR操作系统来避免多线程处理器中的死锁,从而解决了这个问题。通过使用无锁数据结构来解决任务并行执行中出现的其他同步问题。最后,我们提出了对AUTOSAR规范的一些扩展,以便它可以用于SMT处理器的软件开发。我们对此类SMT处理器开发了一些附加要求,以启用任务过滤方法。我们的工作也为汽车领域即将到来的多核处理器的软件开发提供了前景。
{"title":"Implementing AUTOSAR scheduling and resource management on an embedded SMT processor","authors":"Florian Kluge, Chenglong Yu, Jörg Mische, S. Uhrig, T. Ungerer","doi":"10.1145/1543820.1543828","DOIUrl":"https://doi.org/10.1145/1543820.1543828","url":null,"abstract":"The AUTOSAR specification provides a common standard for software development in the automotive domain. Its functional definition is based on the concept of single-threaded processors. Recent trends in embedded processors provide new possibilities for more powerful processors using parallel execution techniques like multithreading and multi-cores. We discuss the implementation of the AUTOSAR operating system interface on a modern simultaneous multithreaded (SMT) processor. Several problems in resource management arise when AUTOSAR tasks are executed concurrently on a multithreaded processor. Especially deadlocks, which should be averted through the priority ceiling protocol, can reoccur. We solve this problems by extending AUTOSAR OS by the Task Filtering Method to avoid deadlocks in multithreaded processors. Other synchronisation problems arising through the parallel execution of tasks are solved through the use of lock-free data structures. In the end, we propose some extensions to the AUTOSAR specification so it can be used in software development for SMT processors. We develop some additional requirements on such SMT processors to enable the use of the Task Filtering Method. Our work gives also perspectives for software development on upcoming multi-core processors in the automotive domain.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132352206","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 15
期刊
Software and Compilers for Embedded Systems
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1