1

暗号コミュニティでは、アルゴリズムのパフォーマンスをサイクル/バイトで測定するのが一般的です。私の質問は、CPUアーキテクチャのどのパラメータがこの数に影響を与えているかということです。もちろんクロックスピードを除いて:)

4

3 に答える 3

0

サイクル/バイトに影響を与える可能性があるいくつかの CPU 機能を以下に示します。

  • パイプラインの深さ
  • 並行して作業できるIUおよび/またはFPUの数
  • キャッシュメモリのサイズ
  • 分岐予測のアルゴリズム
  • キャッシュミスを処理するためのアルゴリズム

さらに、 WCET (最悪の場合の実行時間)を評価する一般的な問題に興味があるかもしれません。

于 2010-04-29T08:14:24.757 に答える
0

2 つの重要な要素は次のとおりです。

  1. CPU の ISA、またはより具体的には、実行する必要がある操作に CPU 命令がどれだけ密接にマップされているか - 特定の操作を 1 つの CPU で 1 つの命令で実行できるが、別の CPU で 3 つの命令が必要な場合、最初の CPUはおそらくもっと早く。CPU に特定の暗号化命令がある場合、または活用できる SIMD などの拡張機能がある場合は、はるかに優れています。

  2. CPU の命令発行率、つまり、クロック サイクルごとに発行できる命令の数

于 2010-04-29T08:15:51.580 に答える
0

主に:

  • メモリバス帯域幅
  • サイクルあたりの CPU 命令

CPU が 1 秒あたりにアクセスできるメモリの量は、制限要因になる可能性があります。それは、アルゴリズムと、作業の大部分がメモリアクセスであることに依存します。また、メモリのどの部分がアクセスされるかは、メモリ キャッシュの動作に影響します。

現在、命令時間は命令にかかるサイクル数ではなく、同じサイクルで実行できる命令の数です。CPU のプリプロセッサは、複数の命令を並列に実行するように並べます。そのため、CPU の並列ラインの数と、コードをどの程度並列化できるかによって異なります。一般に、アルゴリズムの条件分岐が多いと、並列化が難しくなります。

于 2010-04-29T08:17:31.213 に答える