
Appleは何ヶ月もの間、メガヘルツ(MHz)はコンピュータの速度を測る究極の基準ではないと人々に納得してもらおうと奮闘してきました。大きな進展は見られませんが、Appleの主張は正しいと言えるでしょう。この連載記事では、その理由を説明していきます。
一般的に認識されているにもかかわらず、コンピュータの速度をメガヘルツで評価することは、自動車の速度を時速(MPH)で比較することとは異なります。MPHは、あらゆる走行車両に等しく適用できるベンチマークです。しかし、PowerPC、Intel、AMD、その他のチップの世界では、そう単純ではありません。例えば、Pentium IIIチップのメガヘルツとPowerPC G4チップのメガヘルツを比較しても、うまくいきません。
それでも、これはしょっちゅう起こります。「MHz神話」とでも言いましょうか。MHzは速度を決定する要素の一つに過ぎません。他には以下のようなものがあります。
周波数、つまりMHzに関係するのは最後の要素だけです。最初の2つはコンピュータチップ自体のアーキテクチャに関係します。つまり、MHzは全体の方程式の一部に過ぎません。そして、パフォーマンスに関連する3つの要素の間ではトレードオフが生じるため、クロック周波数を高くしても必ずしもコンピュータの性能が向上するわけではありません。重要なのは、チップがどれだけ高速に動作できるかではなく、どれだけ効率的に動作できるかです。
メガヘルツは100万サイクル/秒(100万サイクル/秒)の略称です。チャネル、バス、コンピュータの内部クロックなど、電子機器の伝送速度を測定するために使用されます。ご興味のある方のために補足すると、メガヘルツは通常、100万ビット/秒、またはビット/秒の100万倍に相当します。この記事のようにコンピュータのクロックを指す場合は、コンピュータの中央処理装置(CPU)の速度を測定するために使用されます。
しかし、コンピュータの本質的な、現実的なパフォーマンスについて語る場合、考慮すべき要素は多岐にわたります。そして、設計者がマイクロプロセッサチップを設計する際には、パフォーマンスをどのように達成するかについていくつかの決定を下さなければなりません。そして、MHzはそうした決定の一つに過ぎません。
「MHzという高い処理速度は、一般的にパイプライン(計算ユニットのシーケンスとそれらの計算ステージを指す用語)を長くすることで実現されます」と、マイクロプロセッサ情報源として定期的にパフォーマンス情報を公開しているMicroprocessor Reportのアナリスト、ピーター・N・グラスコウスキー氏は述べています。「これは、パイプラインの各ステージの処理量が少しずつ減り、同時に動作するステージ数が増えることを意味します。」
「パイプライン」とは、計算ユニットのシーケンスとそれらの計算段階、そしてその動作設定を指します。パイプラインとその動作設定に関しては、チップメーカーごとに異なる考え方が採用されています。
PowerPCチップはパイプラインが短いため、各ステージの処理能力が若干増加します。一部のステージは複数のタスクを連携して実行し、他のステージは複数の異なるタスクを同時に実行します。G4のパイプラインが短いということは、1サイクルあたりの命令処理能力が高いことを意味します。一般的に、PowerPCチップはパイプラインが短いため、各ステージの処理能力が若干増加しますが、一部のステージは互いに連携して並列に実行され、同時に複数の異なるタスクを実行しています。
PowerPCの考え方は、可能な限り少ないコンピュータサイクルで最大限の処理を実行することです。Intelはスケーラブルなアーキテクチャを用いて、パイプラインを拡張し、それをより小さなセクションに分割しています。しかし、XLR8のソフトウェアエンジニアリングディレクターであるクリス・クックジー氏によると、パイプラインを拡張すると、コードの効率性を高め、ソフトウェアを最適化しなければならないとのことです。
IntelチップはPowerPCチップよりも多くのステージを備えています。Pentium 3は約10ステージ、Pentium 4は約20ステージです(ただし、ステージ数は実行中の命令によって異なるため、固定ではありません)。つまり、Pentium 4の場合、約20種類の命令が処理されていることになります。そして、それぞれの命令のうち、実際に実行されるのはほんの一部です。
段階には、命令が使用するデータの取得、命令が実行する操作のデコード、操作の実際の実行、およびプロセッサへの結果の書き戻しが含まれます。
「長いパイプラインを扱う場合、数サイクル後の処理についてより多くの推測を行うことになります」と、XLR8プロダクトマネージャーのDavid Reynolds氏は述べています。「プロセッサは数サイクル後の処理を推測するため、本来行うべきではない処理を実行してしまう可能性があります。」
ソネット社のエンジニアリングディレクター、ヘンリー・カナペル氏は、パイプラインは工場の組立ラインのようなものだと述べた。組立ラインには一人の作業員が配置されているのではなく、複数の工程に分かれて、それぞれ異なる担当者が作業にあたる。
「マイクロプロセッサでは、タスクを完了するまでのステージ数は設計変数です」とカンナペル氏は述べた。「ステージ数が多いものもあれば、少ないものもあります。ステージ数が多いほど、各ステージの処理量は少なくなります。しかし、速度を2倍にしてステージ数を2倍にしても、処理時間は変わりません。これがWintelの世界で行われていることです。PowerPCではステージ数は小さいままです。だからこそ、733MHzのPowerPCは1.2GHzや1.5GHzのPentiumよりも性能が良いのです。」
要約すると、Intel チップには、PowerPC チップよりも多くのステージ (命令が使用するデータの取得、命令が実行する操作のデコード、操作の実際の実行、および結果をプロセッサに書き戻す) があります。
明日は、Pentium チップと PowerPC チップの違いについてさらに詳しく見ていきます。