更特殊之处在于,ADSP-2106x的乘法单元包含80位乘法累加器MRF和MRB用于32位×32位=64位数据乘法。而C/C++中常用数据结构最多至64位,ADSPSim中构造了新的类作为80位数据以实现此类乘法(乘法具体算法见B.2.2&C.5)。利用运算符重载使得该类能同常见的数据结构进行运算,同样也能对其进行赋值;另外为了在运算中判断是否上溢/下溢/为负,还提供了相应的接口函数。
3.3.2存储器结构组织
程序加载模块解析目标可执行文件后得到的存储器内容,按段组织映射至虚拟存储器,段数据结构如下:
因为IOP寄存器实际上是特殊的存储器空间,因此单独由指针pSpecialMemory寻址其内容,而常规存储器空间则由pDataBuffer给定内容。覆盖率信息数组最高位表示是否覆盖,低两位:若为00表示顺序执行指令或者绝对跳转指令;01表示条件分支指令执行时条件不满足,未发生跳转;10表示条件分支指令执行时条件满足,发生跳转。
4 结束语
作为一种用以模拟可执行程序在目标芯片上运行情况的工具,ADSPSim已应用于型号工程,是进行嵌入式软件测试和计算机体系结构研究的有力工具,不仅可以单独的工具形式提供给用户用于测试,还能以动态链接库形式提供给软件仿真测试环境,是软件仿真测试环境的重要组成部分。
参考文献:
[1]Analog DevICes, Inc. ADSP-2106x SHARC Processor User's Manual (Revision 2.1) [EB], 2004.3
[2]Tool Interface Standards (TIS) Committee. ELF: Executable and Linkable Format Portable Formats Specification (Version 1.1) [EB]
[3]Tool Interface Standards (TIS) Committee. DWARF Debugging Information Format Specification (Version 2.0) [EB], 1995.5
[4]贺红卫. Intel 8086软件仿真器的设计与实现[J].系统仿真学报, 1996.9, 8卷(3期):50~55
[5]Jianwen Zhu. An Ultra-Fast Instruction Set Simulator[J]. IEEE, 2002.6, VOL.10(NO.3):50~55
[6]李兴玮.仿真软件的现在和未来[A].见:2003全国仿真技术学术会议论文集, 2003.46~51
[7]邢文峰.一种高速灵活的指令仿真器[J].计算机工程, 12004.11, 30卷(22期):74~75,154