完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
作为项目的一部分,我需要最快的方法来为无符号的32位整数做整数平方根。因此,我在网上找到了几个例程(不是StackExchange;-),并决定使用模拟器将编译器与手动优化的汇编器进行比较。经过一番摸索之后,我得到了以下结果:-M1和M2是我找到的两种算法,参见源代码。结果是在由下面的代码片断生成的49.5MHz的cpu锁中,对于试图尽可能消除高速缓存的影响的isqrt(n)平均16个结果。所有看起来都还不错,FPU的速度要快得多(正如我猜想的那样),而且我的手动汇编代码总是比编译器快20%,或者最快算法的速度快10%。然后我在真实的硬件上尝试过(PIC32MX1024EFG064),我发现:-1。FPU在实际硬件2中相当慢。在实际的硬件中,CPU的速度要慢得多。对于第一种方法(M1,M1ASM),我的ASM代码实际上稍慢,而不是模拟器所示的更快的10-20%。编译器代码和我的ASM都是30%慢速的ILL 4。对于第二种方法(M2,M2ASM),模拟器给我的asm提供了相同的优势(2-9%),但是编译器代码和asm都慢了~5-10%的IRLC结论:-模拟器对去bug(显示与实际硬件相同的错误/结果)非常有用。SM/编译器用于EF系列的速度。它可以用于比较算法,但是偏差(30%IRL与10%Sim)使这种情况令人怀疑。在将整数代码与FPU进行速度比较时是没有用的。我认为模拟器需要做更多的工作:-)我将在MX上再试一次,看看模拟器是否给出对于那些感兴趣的人来说(有些评论,如果有人想看看他们是否可以改进我的程序集(非常可能),他们最欢迎在这里发布他们的结果,或者指出我做x而不是y是多么愚蠢,我总是愿意学习!)ISQRT.HISQRT.C
|
|
相关推荐
9个回答
|
|
在MX上几乎相同,但由于某种原因,Sqt()函数的时间匹配?-40MHZPIC32 MX27 0F256D 40MHz
|
|
|
|
尝试:为了清晰起见,我使用了名称而不是寄存器。
|
|
|
|
有趣。我不知道MUL指令导致摊位。我只想到给HI/LO写的多指令导致摊位。显然,模拟器有相同的观点:可以重新洗牌:
|
|
|
|
这使得在模拟器中情况更糟,而在实际硬件中情况更糟(值<0x80000000相同,但值>=0x80000000采用198而不是184个时钟)。实际上我搞砸了(从MZ切换到MX)。在MX上的档位的实际值是2CKS(表2.4),MCU的3CLK用DSP模块(例如MZ,表2.1)。
|
|
|
|
有趣的注释3。有条件的摊位除了1个或2个摊位,命令本身造成的。1或2“听起来很模糊。无论如何,看起来乘法是昂贵的,应该避免。x=g*g可以计算为asx=x[n-1]+2*g[n-1]*c[n-1]+c[n-1]^2。因此,我们可以保持c[n-1]^2和2*g[n-1]*c[n-1],它们可以不用乘法来更新。
|
|
|
|
“无用”是一个绝对的词!但是,这个说法大体上是正确的。越是“复杂”的设备,越有可能模拟器定时不正确。我可以详细讨论在模拟器开发期间所做的工程权衡,但是对于用户来说可能不重要,并且阻止我修复模拟器问题。眨眼:
|
|
|
|
我可以详细讨论在模拟器开发期间所做的工程权衡,但是对于用户来说可能不重要,并且阻止我修复模拟器问题。-)我更喜欢正确而不是快速;-(我们已经从3:-)中挑选了任意2个“便宜”),但是至少它在去bug时节省了我时间和擦除周期。
|
|
|
|
多年以前,我在Z80汇编代码中使用了平方根例程。我不知道它有多快,但这里是:这里是MPYBB和DIVBW例程:其中一些代码可以追溯到1982年或更早。我用它在Z180项目,目前仍在2002。
|
|
|
|
因为您的代码不与任何外围设备交互,所以您可以查看其他MIPS核心模拟器,这些模拟器可能是可用的。
|
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3219 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
791浏览 1评论
682浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
613浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
686浏览 0评论
585浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 18:43 , Processed in 2.199726 second(s), Total 92, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号