完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我使用PIC24FJ256GB206,我的应用程序开始变大,最后不得不转到DSPIC。现在,我做了下面的测试来了解DSPIC的功率。测试模型:初始化三个浮点变量A=0.5,B=0.5,C=0。现在通过循环迭代2500次,其中执行以下操作,c=c+(a*b)设置:通过在测试前打开LED并在测试后关闭LED来获得结果。结果:i)使用运行在32MHz(16MIPS)的pic24fj256gb206,执行时间=51.4ms(近似)i i)使用运行在40MIPS的dsPIC33FJ256GP710A,执行时间=20ms(近似)了解uC在上述频率下运行。我用上面的频率计算了定时器周期寄存器的值,并用它来闪烁一个LED。用示波器观察的闪烁率分别是1.002秒和1.001秒。问题:可以看到,频率增加了2.5倍,执行时间减少了2.5倍。这个结果,我可以使用任何处理器,运行在80兆赫。DSPIC的要点是什么?难道DSPIC应该比MAC单元快得多吗?
|
|
相关推荐
19个回答
|
|
|
奇怪的?不,DSPIC是一个PIC24,加上一些加法。在这些加法可以使用的情况下,DSPIC会更快。但是MAC是整数MAC,并且你正在执行浮点运算。对于这个任务,没有明显的优势在DSPIC添加-这反映了数字。
|
|
|
|
|
|
在微芯片站点上,他们只提到了单周期MAC,但没有提到数据类型。我对此感到困惑,但你的答案却显而易见。然而,站点表示16×16分数/整数乘法运算。这难道不意味着浮动操作应该更快吗?这些添加物是什么?微芯片有没有用于浮点运算的东西?
|
|
|
|
|
|
dsPIC的增加是属于“DSP指令类”的一些操作。相应地,被称为“DSP引擎”的“东西”增加了一些硬件能力。如果您打开一个dsPIC数据表(当前讨论的是dsPICEVxxGM系列),您将找到相应的章节和详细信息。关于浮点支持:在PIC32家族中可用。有浮点硬件支持的模型和无浮点硬件支持的模型。
|
|
|
|
|
|
“分数”不是“浮点”,它是一种特殊类型的不动点整数。
|
|
|
|
|
|
@qhbI知道“.al”(以及一些更奇怪的数学)是如何工作的。无论如何,NareshR显然正在搜索dsPIC上不可用的“真正的浮点”支持。
|
|
|
|
|
|
我已经用不同的模型做了上面的测试,把所有的变量都改为int,a=b=5,c=a*b。现在执行时间是1.5ms和620us,这又减少了大约2.5倍。DSPIC到底是为了什么?我指的是哪种手术?
|
|
|
|
|
|
提高速度的最佳方法是摆脱浮动操作。虽然它们在某些情况下可能是需要的,但大多数事情都可以在没有浮动的情况下完成。这将产生巨大的性能提升。只有当你的任务适合它时,你才能利用DSP引擎,例如FIR滤波器。
|
|
|
|
|
|
NASRESH DSP扩展目标是“数字信号处理”。换句话说:数字滤波器的计算等等。DSP引擎主要针对16位整数/分数算法。因此,使用无符号短变量可能会增加差异。我还没有对DSP的细节做太多研究,因此我不确定编译器是否正常地充分利用DSP引擎,或者这是否可能需要汇编编程。
|
|
|
|
|
|
不幸的是,我的应用程序涉及浮点运算,无法避免它们。至少,整数乘法不是DSPIC应该更快吗?这是否意味着PIC24F和DSPIC以相同的方式乘以整数?DSPIC与整数MAC分离的操作是什么?
|
|
|
|
|
|
我对此非常怀疑。告诉我们您需要什么操作,也许我能够知道如何将它转换成整数。在dsPIC上乘法是相同的速度。
|
|
|
|
|
|
DU000 00 01:我已经将变量改为未签名int,仍然没有改进,获得大约600美元。我不明白DSPIC对…有什么好处。
|
|
|
|
|
|
@NorthGuy:在算法步骤之一,我需要对信号进行归一化,并将输出传递给后续的包含多重操作的块。由于归一化步骤将信号转换为0和1的范围,后续块涉及浮点乘法。
|
|
|
|
|
|
通常,DSP指令集包括“REPEAT”指令优化,例如循环执行。我又浏览了一下数据表:REPEAT指令似乎已经在PIC24指令集中了。所以是ED*(欧几里得距离)、MAC、MPY(乘法)和MSC(乘法和子跟踪)。T)。再加上一些“支持操作”,比如清除ACC。除非您需要这些操作,否则不会太多。关于整数:我避免“整数”——使用“短”resp。在短的乘法中,DSPIC可以在给定的范围内具有优势。(实际上,它是无济于事的:DSPIC可以做PIC24所做的一切。DSP引擎只在算法符合性能时才提供一些优势。如果PIC24上的MUL操作只需要一个周期,您将如何设法使这个速度更快?建议你查看一下相应的数据表…
|
|
|
|
|
|
另外,在0…1范围内的信号对于分数整数算术是完美的。这就是分数整数的组成部分。
|
|
|
|
|
|
为此,可以使用分数整数。将比浮动快得多。谷歌“Q15格式”获取更多细节。如果你的乘法运算与加法运算相结合,例如x=a*b+c*d+e*f,那么你可以用DSP引擎加速。600ns?乘以40 MIPS乘以25纳秒。你真正测量的是开销(主要是使用C语言)。如果你想摆脱大部分开销,你可以编写小的汇编程序。
|
|
|
|
|
|
我已经通过Q格式,如果我做对了,它只不过是放大和缩小。我想,这是前进的唯一方法。我仍然想知道dsPIC在C中的重要性。有人能这样解释吗,“如果在pic24f中这个操作c=a+(b-c)会比dsPIC慢”,你能给我这样的表达式吗?变量的数据类型并不重要,我准备在pic24F和dsPIC中实现表达式,并在这里报告执行时间,但不知道dsPIC的重要性使我认为dsPIC是无用的,至少目前是这样
|
|
|
|
|
|
C编译器本身不会使用DSP引擎。这里有一些“Sy-Bug……”函数,但是IMHO更容易直接使用汇编程序。我认为有一些微芯片DSP库,如向量乘法等。
|
|
|
|
|
|
它们可以被标准化为0到1000或0到65535,这是一个任意的选择。
|
|
|
|
|
|
PIC32 MZ EF芯片具有浮点加速器。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 11:03 , Processed in 1.243245 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3563