【发布时间】:2010-01-19 22:32:32
【问题描述】:
在本文档中: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301g/DDI0301G_arm1176jzfs_r0p7_trm.pdf
在第 21-25 页(pdf 第 875 页)中,给出了 VFP 单元的汇编指令的吞吐量和延迟时间。
这些数字是否与向量大小无关?
1: 让我们以 FMULS 为例,它的吞吐量为 1,延迟为 8。这是否意味着如果我不使用当前不是由前一个函数计算的寄存器,我可以在每个周期开始一个新的 FMULS 操作? 例如:
FMULS s8, s16, s20
FMULS s12, s21, s25
它们会紧接着执行吗?
2: 如果我有两个 FMULS 函数,其中一个参数取决于先前的计算,会发生什么情况
FMULS s8, s16, s20
FMULS s12, s21, s8
VFP 会在开始处理第二条指令之前等待 8 个周期吗?
3: 如果我们处于具有 4 个元素的向量模式,并且在第二条 FMULS 指令中,所有输入寄存器都可用,但只有一个可用。会发生什么?
4:sqrt 和除法: sqrt 或除法操作会阻止任何后续操作在 19 个周期内启动吗?
谢谢!
【问题讨论】:
标签: iphone assembly arm latency visual-foxpro