您好!
在 TMS320C6748 手册中、它是这样写的
–每时钟2 SP×SP→SP
–每两个时钟2个 SP×SP→DP
–每三个时钟2个 SP×DP→DP
–每四个时钟2个 DP×DP→DP
但是、当我进行汇编编编编程时、我看到乘以浮点数的 MPYSP 需要4个时钟周期。 那么、为什么我们可以在每个时钟周期中将两个单精度数相乘。 我如何才能做到这一点? 请帮助。 提前感谢。
我的要求是获得两个浮点数组的 dot乘 积、其中一个是字节对齐的、另一个不是字节对齐的。
相关信息
Shalini
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
在 TMS320C6748 手册中、它是这样写的
–每时钟2 SP×SP→SP
–每两个时钟2个 SP×SP→DP
–每三个时钟2个 SP×DP→DP
–每四个时钟2个 DP×DP→DP
但是、当我进行汇编编编编程时、我看到乘以浮点数的 MPYSP 需要4个时钟周期。 那么、为什么我们可以在每个时钟周期中将两个单精度数相乘。 我如何才能做到这一点? 请帮助。 提前感谢。
我的要求是获得两个浮点数组的 dot乘 积、其中一个是字节对齐的、另一个不是字节对齐的。
相关信息
Shalini
沙利尼
如果您希望我们对 C6748文档的特定摘录进行评论、请告诉我们文档名称/编号以及摘录的确切位置。 当我们有如此多的 C6748手册和文档可供搜索时、一般注释并不容易找到。
通过查看 TMS320C6000 DSP 优化技术讲座材料、您可能会获得问题的最佳答案。 您可以下载学员指南并查看其中的数字和 C6000流水线架构说明。 C6000和 C674x 是复杂的 VLIW 处理器、经过编程后具有很多功能、可充分利用其架构。
我们强烈建议您使用 C 语言编写程序、并使用编译器优化开关和#pragma 来实现优化目标。 如果不透彻了解底层架构和每条指令的行为、在汇编语言中编写非常困难。 C 编译器将生成非常优化的代码、并且至少、您可以使用编译器的汇编输出来帮助您了解编写自己的汇编代码的最佳方法(如果您愿意)。
C674x CPU 和指令参考指南详细介绍了处理器架构以及每条指令的流水线和用法信息。 例如、对于 MPYSP 指令、它显示该指令是具有"3个延迟槽"但具有1个周期功能单元延迟的"4周期"指令。 当您学习技术讲座材料和 C674x CPU 和指令参考指南时、您将了解这三个术语之间的差异以及如何在处理器中使用它们。
C6748过程实际上可以在每个时钟周期执行两(2)条 MPYSP 指令。
您可能会发现特定于点积的说明非常有用。 可以使用 C 编译器用户指南中的 C 内在函数在 C 代码中使用这些函数。
但是、请考虑先用 C 编写您的应用。 使其在功能上正常工作、然后测量性能并使用基于 C 的优化、直到获得应用所需的性能。
此致、
RandyP