首页> 外文学位 >Efficient execution of compressed programs.
【24h】

Efficient execution of compressed programs.

机译:高效执行压缩程序。

获取原文
获取原文并翻译 | 示例

摘要

Code compression is the technique of using data compression to reduce the program memory size for memory-limited, embedded computers. For system-on-a-chip designs, this reduces the system die area which lowers die cost. After compilation, the binary (native code) program is compressed and stored in the embedded system. At run-time, the compressed program is incrementally decompressed and executed. While compressed programs have better code density, their performance is typically lower because additional effort is required to decompress the instruction stream. This dissertation presents methods to improve the performance of compressed programs.; Decompression overhead can be minimized by using special-purpose hardware. This dissertation analyzes IBM's CodePack decompression algorithm and proposes optimizations for it. The optimized decompressor can often execute compressed programs faster than the original native program. The performance benefit of using fewer memory transactions to fetch compressed instructions surpasses the small decompression overhead. Therefore, code compression improves performance as well as code density.; The decompression hardware can be largely replaced with software. The benefits of software decompression are greater design flexibility, reduced hardware complexity, reduced die area, and reduced cost. However, software decompression is much slower than hardware decompression. On a 5-stage pipelined embedded processor with a 4KB instruction cache, CodePack programs execute 1.3 to 27.0 times slower than native programs and reduce program memory die area (instruction cache and main memory) by 26% to 41%. This dissertation proposes instruction set support to enable efficient software-managed decompression. In addition, it explores two software optimizations, hybrid programs and memoization, to improve the execution time of compressed programs by reducing the compression. Hybrid programs contain both native and compressed code to reduce the number of times the decompressor is invoked. Memoization is a dynamic optimization that caches recent decompression results to also avoid invoking the decompressor. Optimized compressed programs that reduce die area 10% to 33% execute only 1.00 to 1.22 times slower than native code. In addition, loop-oriented (multimedia) programs are nearly as fast as native code.
机译:代码压缩是一种使用数据压缩来减少内存受限的嵌入式计算机程序内存大小的技术。对于片上系统设计,这可以减小系统芯片面积,从而降低芯片成本。编译后,将二进制(本机代码)程序压缩并存储在嵌入式系统中。在运行时,将对压缩程序进行增量解压缩并执行。尽管压缩程序具有更好的代码密度,但它们的性能通常较低,因为需要更多的工作来解压缩指令流。本文提出了提高压缩程序性能的方法。通过使用专用硬件,可以最大程度地减少解压缩开销。本文分析了IBM的CodePack解压缩算法,并提出了优化方案。优化的解压缩器通常可以比原始本机程序更快地执行压缩程序。使用较少的内存事务来获取压缩指令的性能优势超过了较小的解压缩开销。因此,代码压缩可以提高性能以及代码密度。减压硬件可以用软件代替。软件解压缩的好处是更大的设计灵活性,降低的硬件复杂性,减小的管芯面积和降低的成本。但是,软件解压缩比硬件解压缩要慢得多。在具有4KB指令高速缓存的5级流水线嵌入式处理器上,CodePack程序的执行速度比本地程序慢1.3至27.0倍,并将程序存储器的裸片区域(指令高速缓存和主存储器)减少了26%至41%。本文提出了指令集支持,以实现有效的软件管理的解压缩。此外,它探索了两种软件优化,即混合程序和备忘录,以通过减少压缩来缩短压缩程序的执行时间。混合程序包含本机代码和压缩代码,以减少调用解压缩器的次数。备忘是一种动态优化,可缓存最近的解压缩结果,从而避免调用解压缩器。经过优化的压缩程序可以将芯片面积减少10%至33%,执行速度仅比本地代码慢1.00至1.22倍。此外,面向循环的(多媒体)程序几乎与本机代码一样快。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号