作者merckhung (小猫排店长)
看板ASM
标题Re: [问题] 如何用DSP的组合语言实做有小数点的除法
时间Wed Sep 24 04:47:16 2014
我觉得命题怪怪的.
DSP 的发明, 应该是针对讯号处理.
抱歉也有可能是我比较不熟这块.
我的了解 DSP 应该的主要基础之一就是 "Floating-point" 的加减乘除.
所以如果只是说, "除法的话", C 语言被 Compiler 编译後, 有可能只是,
1, 2 个 DSP 指令, 你再怎麽用整数 ASM 兜也不可能比 HW FP 电路速度来得快.
另外用整数 ASM 兜, 又违反本来 DSP 的设计理念.....所以我觉得怪怪 der.
看你要最佳化的 C 是哪部分:
1) 一个C除式的, 组合语言的啓幕与落幕?
2) 一个演算法, 里面有除法的?
※ 引述《mosquito520 ( )》之铭言:
: 我没写过DSP,所以那部份我没办法给建议
: 不过,用C写的效率如果不好,用组合语言写不见得就会比较好
: 除非你有把握你可以最佳化做得比compiler还要好XD
: 将除法改成"先求出除数的倒数,再和被除数相乘来达成"
: 首先就会碰到的问题是,你除数的倒数,精确度够高吗?
: 如果转换成倒数的过程就损失了部分的精确度,相乘之後自然误差会更大
: 建议你可以往两个部分想看看
: 第一个是去网路上找找除法的演算法,简单说,别人怎麽实现除法的?
: 第二个是你的除法的改善,因为你没有提供数字,
: 所以我也不知道你是整数除法?还是浮点数除法?
: 一般来说整数除法会比浮点数除法的速度要快,
: 那你的资料有没有可能先调整成整数去运算?最後再调整回原先的数值?
: 真想不出来,就把你的演算法瓶颈的部分贴上来
: 或许会有人给你一点建议:)
: ※ 引述《asdrtyjkl925 (阿斯拉)》之铭言:
: : 大家好
: : 小弟之前写DSP,都是用C来写
: : 但目前的CASE,用C的话执行速度不够快,所以开始学用组合语言
: : 最近在除法上遇到了瓶颈
: : 我想到的除法的做法是:
: : 用RCPSP或RCPDP指令先求出除数的倒数,再和被除数相乘来达成
: : 但後来发现这两个指令求出的倒数值,不是那麽精确
: : (和计算机按出来的答案有落差)
: : 所以想请教大大们 正确的除法该怎麽执行,谢谢:)
: : (ps.使用的DSP为C6748)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.71.72
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/ASM/M.1411505239.A.5CE.html