论文部分内容阅读
信号处理技术被广泛应用于雷达、电子对抗、通信、声纳、语音视频等领域。随着这些领域各种器件和技术的进一步发展,市场对密集型数字信号处理的运算精度和速度提出了更高的要求。当前,用于数字信号处理的器件有专用ASIC器件、通用可编程逻辑(FPGA)器件和通用DSP处理器。其中,专用ASIC器件由于其灵活性方面的局限,已无法满足市场和应用的需求。此种情况下,利用通用可编程逻辑器件(FPGA)和通用DSP处理器构建的数字信号处理通用平台技术则随着集成电路技术、计算机技术和工艺水平的快速发展日趋成熟。近年来,伴随密集型数字信号处理技术本身的发展以及现代电子系统功能模式的繁多复杂,市场对以数字信号处理器件为核心的数字信号处理系统提出了新的要求,如具有处理矢量信号、宽频带(信号处理带宽不断加大)信号的能力,具有大动态范围的增益和频带实时可变等。技术上是否采用高性能数字信号处理器已成为提高整个数字信号处理系统性能和可靠性的重要措施。通用DSP处理器具有动态范围大,精度高、可通过编程方式来实现特定算法的优势。近25年来,尽管DSP处理器得到了快速发展,但目前国内所使用DSP芯片主要从国外进口,这势必给我国的国家安全和信息产业带来不利的影响。因此,如何自主研制DSP处理器芯片成为我国数字信号处理技术发展亟待解决的问题。为改变DSP芯片对国外产品技术的依赖,同时为满足国内市场的巨大需求,近年来中国电子科技集团第38研究所对高性能DSP处理器进行了专项研究,并成功研制出魂芯一号(BWDSP100处理器)芯片。高速缓存器(Cache)能有效解决DSP处理器内核运算速度与存储器访存速度不匹配问题,从而有效地提高DSP处理器运算能力。随着DSP处理器的功能日益强大,软件程序的复杂程度也在不断增大,软件的代码量迅速增加,同时DSP处理器需要强大编译器支持来实现各种应用程序,如循环展开优化编译器性能造成指令代码膨胀,采用无损数据压缩技术对经过编译、汇编后生成二进制机器指令代码进行压缩,减少指令代码存储空间大小,这样在DSP处理器存储空间有限条件下可以存储更多指令程序代码,同时增加Cache命中率,提高BWDSP处理器整体性能。指令Cache设计和压缩指令代码大小成为BWDSP处理器设计需要考虑的问题。本文结合中国电子科技集团第38研究所自主研制的高性能BWDSP处理器,从指令Cache设计、指令代码压缩方面展开研究工作。1)IC工艺发展28nm,高性能BWDSP处理器将取代国外DSP处理器产品。指令Cache性能是影响BWDSP处理器性能的主要因素之一,Cache替换算法是影响Cache性能的主要因素。本文提出4路PLRU的Cache替换算法。PLRU(Pseudo-LRU)替换算法是在指令Cache增加一个8bitlru[7:0]的矢量,当Cache命中某路更新lru[7:0]上的值;当Cache缺失时,根据lru[7:0]值来确定替换哪Cache块并且更新lru[7:0]的值。通过BWDSP模拟器对PLRU替换算法、指令Cache容量大小、Cache块大小、组相联映射进行仿真实验,最终得出指令Cache一组最优参数。2)高性能BWDSP处理器指令代码压缩。研究高性能BWDSP处理器以跳转块为代码压缩单元,利用LZW字典压缩和改进LZW字典压缩对指令代码经编译器和汇编器后生成二进制机器代码进行压缩,压缩的代码存储在指令存储器中,在指令存储器与指令Cache之间有译码单元。该方法不需要改变高性能BWDSP处理器的编译器、汇编器和BWDSP处理器内核流水线的级数。当指令Cache缺失时,译码单元对指令存储器存储的压缩代码进行解压。指令代码的跳转块首地址为行地址映射表(LAT)中一项的基地址,指令跳转块的指令地址就为LAT基地址加偏移地址得到。利用LAT来表示压缩前代码的地址和压缩后代码的地址对应关系,这样就能保证高性能BWDSP处理器的内核能够随机访问指令代码。在高性能BWDSP处理器指令代码压缩模拟器进行仿真,仿真结果表明代码压缩率在60%和55%左右。3)基于执行宏和指令域的代码压缩方法。研究指令域的代码压缩方法。该方法分为符号生成、符号建模和符号编码三个步骤。一条指令生成几个符号以及符号模型的建立对代码压缩率起着重要作用。本文以指令位置、指令类型和执行宏高阶模型来充分挖掘不同类型指令域内部符号之间的相关性。将执行宏模型和位置模型组合执行宏-位置混合模型,并用Huffman编码实现代码压缩。以高性能BWDSP处理器指令集,在高性能BWDSP处理器开发平台验证用Huffman编码对执行宏-位置混合模型生成符号的进行代码压缩,并得到50%左右的压缩率。4)为了保证高性能BWDSP处理器指令Cache设计的功能完备性,提出对高性能BWDSP处理器指令Cache功能验证。利用功能覆盖率对指令Cache设计的全部功能的描述转换。软件仿真器模型和RTL模型构建指令Cache功能验证测试平台。针对指令Cache中访存指令得出测试要求。最后得出覆盖率报告结果表明功能覆盖率达到100%。