您好,我使用AM3359跑一个小测试程序(裸机程序),程序内用for循环做整型数的加法(代码内没有浮点数),
发现一个奇怪的现象:AM3359的整型数计算能力,无效VFP时比使能VFP时快。
我做了很多次测试,包括选择不同的优化选项,使用cache什么的,别的条件一样时,大部分测试结果都
倾向于上述的现象。这是为什么呢?VFP对整型数计算有什么影响呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
理论上是没有分别的,能说说你的测试方法和具体的测试结果么?
vfp只是你的算法中有浮点运算,编译器生成而来浮点指令,才会用到。
■测试方法很简单:
timer start
for() //整型数运算
timer stop
■测试的结果
编译优化选项 选择速度优先,打开MMU,配置Cache
使用VFP的话:1000次加法运算的时间是7.75us
不使用VFP的话:1000次加法运算的时间是6.54us
这是使用Cache得到的数据,如果没使用的话,两者的差更大些。
■生成指令
我比较过 使用/不使用 VFP时生成的汇编代码,两者是完全相同的,而且都没用到vfp相关的指令。
同样的代码,除了VFP以外别的设置也都一样,为什么会出现这种现象呢?