FPU计算测试-----与FSL K64对比
时间:10-02
整理:3721RD
点击:
TG401是与飞思卡尔的k64都是M4内核,都具备到单精度的浮点运算单元------FPU,在进行浮点数据运算时,相较于M0+、M3核,有着巨大的优势。今天就来测试一下他们的FPU。首先,先看手册,TG401的主频是150MHz,而K64的标准主频120MHz,不出意外的话,计算速度是TG401领先。首先,在网上找了一个计算圆周率的函数,浮点运算,用来测试。
两款片子各计算100次,分不开启FUP和开启FPU两种情况,参看所需时间。结果如下:
可以看到,不开启FUP和开启FPU的计算时间,差距不止一点点
- while(count--)//计算100次
- {
- float term=1.0f,sum=0.0f,pi;
- int i=1;
- do{
- sum+=term;
- i++;
- term=1.0f/(i*i);
- }while(term > 1e-12);
- sum*=6;
- pi=sqrt(sum);
- }
- time=start;
- printf(" FPU_on: %d ms\n",time);//计算完毕,打印时间
两款片子各计算100次,分不开启FUP和开启FPU两种情况,参看所需时间。结果如下:
可以看到,不开启FUP和开启FPU的计算时间,差距不止一点点

K64

TG401

还有一点要注意的是浮点运算单元只适用于单精度浮点(Float型)的运算,而对于double型就不管用。要是你语句中有a=a*1.2 这样的语句,这个1.2系统是默认定义为double型的,运算时按double型进行运算,再把结果转化成float,所以应写成 a=a*1.2f(将1.2定义为float型) 才行。
