3

PowerPCとx86アセンブラコードの実行時間を概算する必要があります。多くの問題に応じて正確に計算できないことを理解しています(現在のプロセッサの状態-x86プロセッサはマイクロ命令の内部命令を分割し、メモリアクセス時間は低速メモリからのキャッシュからコードを取得しますなど)。 )。

インテル最適化リファレンス(付録C)でいくつかの情報を見つけましたが、すべての汎用命令に関する情報を提供しているわけではありません。それについての完全なリファレンスはありますか?

PowerPCプロセッサはどうですか?そのような情報はどこにありますか?

4

4 に答える 4

2

PowerPC については十分に文書化されていますが、どのプロセッサについて話しているかによって異なります。IBM は 970 (G5) のかなり良いマニュアルを作成しました。マイクロアーキテクチャの詳細に関しては、インテルはあまり積極的ではありません。

とはいえ、やりたいことはかなりトリッキーです。x86 と PowerPC はどちらもスーパースカラーです。複数の実行ユニットとパイプラインがあるため、クロック サイクルごとに 1 つの命令を実行していた昔とは異なります。たとえば、PowerPC 970 では、いつでも最大 215 の命令を「実行中」にすることができます。コードの小さなセクションの正確なサイクル カウントを測定する場合は、シミュレータが必要です。

于 2010-05-20T20:19:46.890 に答える
1

非常に厳密な分析を行う必要があります。すべてのキャッシュ、アラインメント、パイプライン、タイム スライスなどを考慮してください。x86 には、命令ごとのハード クロック サイクル時間さえありますか? CPU のマニュアルが示唆する方法に従って、速度のために最適化されたコードを作成することをお勧めします。

于 2010-05-20T20:25:32.493 に答える
1

これは、実行環境を非常に厳密に制御したり、少なくとも場合によっては真実ではない仮定を作成したりせずに、最新の汎用 OS で行うのは非常に難しいに違いありません。

例: ハードウェア リソースが 1 つの非常に空腹な競合プロセスまたは複数の競合プロセスによって過負荷になっている場合、特定のコードを実行するのにかかる時間は、競合するプロセス間で過負荷になったリソースを OS がどれだけ公平に共有できるかによって異なります。OS がリソースを公平に完全に共有できたとしても、競合するプロセスの数を制限して有限の時間制限を決定できなければなりません。

于 2010-05-20T22:24:47.660 に答える
1

最新のプロセッサは、ほとんどの時間をメモリの待機、または現在のスレッドのメモリの待機中に行うべきことの検索に費やしています。

おそらく、メモリ使用量を最適化してみる必要があると思います。

于 2010-05-20T20:22:11.010 に答える