您好!
在 C6000优化技术讲座中、我有一些问题:
- c6xxx 架构是两个侧面32寄存器,与 IA-64 VLIW 类似,不是吗?
- TI 的最新 Keystone 处理器时钟频率为1.2GHz,某些 x86 CPU 的运行频率为4GHz,在极端冷却条件下可以将时钟频率加速到6GHz。 有人说 DSP 具有更短的流水线、但对于 C6000、流水线阶段是
|
获取:PG PS PW PR 解码:DP DC 执行:E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 |
并且比 Intel x86 (Skylake 14、Bonnell 16)少3倍。 鉴于 TI 始终拥有最先进的半导体制造能力、为什么时钟速度比英特尔慢3倍? 只是为了降低功耗? 但 Keystone 和同类产品都被标记为高性能。
C6000具有2个边64寄存器、8个处理单元、这使得软件流水线在每个周期中变得更加容易、因为有更多的资源需要占用。 我读过、IA64的设计期望很高、但由于向后兼容性不好、因此没有那么成功。 从 DSP 的角度来看、x86很少有通用寄存器(如8个)、并且可能没有交叉路径访问(至少像 C6000使程序员如此显式/透明)。 因此、如果一个像密集 FIR 循环那样进行写入、通用编译器(VC、GCC)可以执行非常有限的优化。 因此,我想,如果不使用英特尔 ICC 并提供类似于 TI 的 MUST_ITERATE/_nasserts 的 IT pragma,ICC 就可以使用 MMX/SSE 指令,基线编译器就无法生成像 C6000 DSP 这样的高效代码。 您能就此发表评论吗?
4.英特尔提供了 MKL 数学库,这些数学库像 TI DSPLIB 一样经过手工优化。 如果我们在 Intel Skylake 上放置 SSE 优化代码(14个流水线阶段、与 C6000 16个阶段相比)、C6000的前束到前束、每个周期的效率会胜出? 再说一次、为什么会有3倍的差异?
Dave