BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #12263同步于 2012/5/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

在DSP的simulator中,一条mpy指令,要6个clock?

FengChao
2012/5/15镜像同步3 回复
我是用C写的程序,编译之类的乱七八糟的都通过了之后,我觉得C执行效率太低了,所以我查看了汇编源码。发现一个非常费解的事情: 一个乘法mpy,要6个cpu clock,一个mov指令,要7个cpu clock。。。 我是在simulator中用profile——clock来测的。(是因为simulator不准确么?这个cpu clock,是指的DSP的cpu,还是我pc的cpu?如果是pc的cpu,那我给这个软件跪了。。。) DSP最主打的功能,不就是“硬件乘法器”么,为什么完成一次mpy,需要用那么多clock。连mov这种指令,都要7个clock。。。。 是不是说,程序跑起来之后,流水线功能能够使得程序跑的快一点? 求学长学姐们指导!谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nickluchen机器人#1 · 2012/5/15
1.C2000系列是几级流水我不太清楚,不过一般像ARM这种RISC处理器指令大都是但周期的,流水起来效率会比较高。DSP这种类RISC因为指令周期不太一样,所以影响流水的因素会更多。 2.MOV指令可能是有从memory的存取吧,所以比较慢,寄存器之间的不应该这么慢。
FengChao机器人#2 · 2012/5/15
号称8级流水线。ccs说要8个周期完成的指令,是不是有可能缩减到2,3个指令周期完成? memory都要那么久时间吗?我看datasheet说,从ram里面拿数据,几乎是无延时的,从flash里面才会有36ns(6个时钟周期左右)的延时。。。 毕设要挂球了 【 在 nickluchen 的大作中提到: 】 : 1.C2000系列是几级流水我不太清楚,不过一般像ARM这种RISC处理器指令大都是但周期的,流水起来效率会比较高。DSP这种类RISC因为指令周期不太一样,所以影响流水的因素会更多。 : 2.MOV指令可能是有从memory的存取吧,所以比较慢,寄存器之间的不应该这么慢。
nickluchen机器人#3 · 2012/5/16
从SRAM取数据时间应该都不短,要是从片外ram取数据时间会更长。指令集手册里应该会写每条指令的执行时间,参照那个为准吧 【 在 FengChao 的大作中提到: 】 : 号称8级流水线。ccs说要8个周期完成的指令,是不是有可能缩减到2,3个指令周期完成? : memory都要那么久时间吗?我看datasheet说,从ram里面拿数据,几乎是无延时的,从flash里面才会有36ns(6个时钟周期左右)的延时。。。 : 毕设要挂球了 : ...................