论文部分内容阅读
在消费电子市场需求的有力推动下,嵌入式系统的功能日益强大,其软件开发的复杂程度也随之越来越高,嵌入式软件的代码量以平均每两年时间翻一番的速度增长。由于嵌入式系统在成本、体积、功耗等多方面受到制约,代码量的增长将成为嵌入式系统发展的一个瓶颈。因此,代码压缩技术将成为今后嵌入式系统发展的一项关键技术。 本文从基本的数据压缩理论入手,分析了典型的数据压缩和代码压缩的各自特点以及它们之间的内在联系与区别,结合对当今代码压缩技术的发展现状的介绍,总结出了代码压缩技术的评价标准。基于对ARMv4指令集的研究分析,我们提出了通过字典压缩的方法对程序代码进行压缩以减小其冗余度的方案。我们对字典压缩的问题进行了数学抽象和描述,进而对字典压缩方案中的各种参数的设计进行了数学分析以论证所采用的代码压缩方案的正确性与合理性。本文对我们所设计的代码压缩方案的步骤、代码压缩中的难点问题的解决等细节以及主要的算法流程均做了详尽的叙述。最终,使用我们所设计的代码压缩方案,我们对MiBench基准测试程序中的6个典型程序进行了压缩实验,获得了平均81.1%的压缩比。 在代码压缩方案设计的基础上,我们对解压缩系统的硬件设计进行了讨论,并对解压缩系统中的主要部分提出了优化的硬件设计方案。为了验证代码压缩方案的正确性,我们搭建了一个系统验证平台,其中包括:Verilog HDL描述的解压缩模块和压缩指令内存模型,以及PLI形式的ARM指令模拟器。通过与ARM公司的标准模拟器ARMulator的输出结果进行对比,我们完成了验证系统的自动化测试。 最后,我们对压缩实验的结果进行了深入的分析研究,总结了影响代码压缩的因素,并对未来工作做了进一步探讨。