Embedded software development has recently changed with advances in computing. Rather than fully co-designing software and hardware to perform a relatively simple task, nowadays embedded and mobile devices are designed as a platform where multiple applications can be run, new applications can be added, and existing applications can be updated. In this scenario, traditional constraints in embedded systems design (i.e., performance, memory and energy consumption and real-time guarantees) are more difficult to address. New concerns (e.g., security) have become important and increase software complexity as well.ududIn general-purpose systems, Dynamic Binary Translation (DBT) has been used to address these issues with services such as Just-In-Time (JIT) compilation, dynamic optimization, virtualization, power management and code security. In embedded systems, however, DBT is not usually employed due to performance, memory and power overhead.ududThis dissertation presents StrataX, a low-overhead DBT framework for embedded systems. StrataX addresses the challenges faced by DBT in embedded systems using novel techniques. To reduce DBT overhead, StrataX loads code from NAND-Flash storage and translates it into a Scratchpad Memory (SPM), a software-managed on-chip SRAM with limited capacity. SPM has similar access latency as a hardware cache, but consumes less power and chip area.ududStrataX manages SPM as a software instruction cache, and employs victim compression and pinning to reduce retranslation cost and capture frequently executed code in the SPM. To prevent performance loss due to excessive code expansion, StrataX minimizes the amount of code inserted by DBT to maintain control of program execution. When a hardware instruction cache is available, StrataX dynamically partitions translated code among the SPM and main memory. With these techniques, StrataX has low performance overhead relative to native execution for MiBench programs. Further, it simplifies embedded software and hardware design by operating transparently to applications without any special hardware support. StrataX achieves sufficiently low overhead to make it feasible to use DBT in embedded systems to address important design goals and requirements.
展开▼
机译:嵌入式软件开发最近随着计算的进步而发生了变化。如今,嵌入式和移动设备已被设计为一个平台,可以在其中运行多个应用程序,可以添加新应用程序,并且可以更新现有应用程序,而不是完全协同设计软件和硬件来执行相对简单的任务。在这种情况下,嵌入式系统设计中的传统约束(即性能,内存和能耗以及实时保证)更加难以解决。新的关注点(例如安全性)变得越来越重要,并且也增加了软件的复杂性。 ud ud在通用系统中,动态二进制转换(DBT)已用于通过即时(JIT)等服务来解决这些问题。 ),动态优化,虚拟化,电源管理和代码安全性。然而,在嵌入式系统中,由于性能,内存和功耗的限制,通常不使用DBT。 ud ud本文介绍了StrataX,一种用于嵌入式系统的开销很小的DBT框架。 StrataX使用新颖的技术解决了嵌入式系统中DBT面临的挑战。为了减少DBT开销,StrataX从NAND闪存存储中加载代码,并将其转换为Scratchpad Memory(SPM),这是一种软件管理的片上SRAM,容量有限。 SPM具有与硬件高速缓存相似的访问延迟,但是消耗的功率和芯片面积较小。 ud udStrataX将SPM作为软件指令高速缓存进行管理,并采用受害压缩和固定来降低重新翻译成本并捕获SPM中频繁执行的代码。为了防止由于过度的代码扩展而导致性能损失,StrataX最小化了DBT插入的代码量,以保持对程序执行的控制。当硬件指令缓存可用时,StrataX在SPM和主存储器之间动态划分翻译后的代码。通过这些技术,相对于MiBench程序的本机执行,StrataX具有较低的性能开销。此外,它通过对应用程序透明地运行而无需任何特殊硬件支持,从而简化了嵌入式软件和硬件设计。 StrataX实现了足够低的开销,使在嵌入式系统中使用DBT来解决重要的设计目标和要求变得可行。
展开▼