1

在加密社区中,通常以周期/字节来衡量算法性能。我的问题是,CPU 架构中的哪些参数会影响这个数字?当然除了时钟速度:)

4

3 回答 3

0

以下是一些可能影响周期/字节的 CPU 特性:

  • 管道深度
  • 能够并行工作的 IU 和/或 FPU 的数量
  • 高速缓存的大小
  • 分支预测算法
  • 处理缓存未命中的算法

此外,您可能对评估WCET(最坏情况执行时间)的一般问题感兴趣

于 2010-04-29T08:14:24.757 回答
0

两个重要因素是:

  1. CPU 的 ISA,或者更具体地说,CPU 指令与您需要执行的操作的映射程度 - 如果您可以在一个 CPU 的一个指令中执行给定的操作,但它需要另一个 CPU 上的 3 条指令,那么第一个 CPU可能是快点。如果您在 CPU 上有特定的加密指令,或者可以利用 SIMD 等扩展,那就更好了。

  2. CPU的指令下发率,即每个时钟周期可以下发多少条指令

于 2010-04-29T08:15:51.580 回答
0

主要是:

  • 内存总线带宽
  • 每个周期的 CPU 指令

CPU 每秒可以访问多少内存可能是一个限制因素。这取决于算法以及内存访问的工作量。此外,访问的内存部分也会影响内存缓存的工作情况。

如今,指令时间不是以一条指令需要多少个周期来衡量的,而是在同一周期内可以执行多少条指令。CPU 中的预处理器排列了几条要并行执行的指令,因此这取决于 CPU 有多少并行行以及代码的并行化程度。通常,算法中的大量条件分支使得并行化变得更加困难。

于 2010-04-29T08:17:31.213 回答