Comments
Description
Transcript
PCIバスの効率的な使用
PCIバ バスの効率的な使用 i Platform Architecture Labs Intel Corporation 04/22/97 概要 スループット(M ビット/秒) 多くの場合、PCIバスを効率的に使用するPCI周辺デバイスを選ぶだけで、システム・パフォーマンスを ii 飛躍的に向上させることができます。図1 は、簡単なベンチマークであるTTCP*のネットワーク・スル ープットを、5つの異なったPCIネットワー ク・インタフェース・カード(NIC)ごとに示 140 したものです。システムは一定の状態に保た 120 れているため、PCIカード・デザインの結果 100 がご覧のように大きな性能の違いとなって います。このようにパフォーマンスに大きな 80 違いの出ることが分かれば、システム・イン 60 テグレータはPCIカードの選択を慎重に行い 40 ます。また、この差はデザイナが効率的なPCI デザインのための規則に従う動機ともなり 20 ます。本書は、システム・インテグレータや 0 PCIカード・デザイナに適切なPCIカード・デ A B C D E ザインの重要性を認識させ、効率的なPCIデ NIC ザインの規則を紹介するためのものです。 図1 PCIネットワーク・インタフェース・カードの 効率的なPCIデザインを確実に行うために ネットワーク・スループット は、最低限の規則を守る必要があります。主 要な市販のNICを調査した結果では、多くの 場合、この規則は守られていません。本書では、最初に効率的なPCIデザインの規則を紹介します。次に、 PCIのパフォーマンスを詳しく説明するために用いたメトリックスやチャートを定義します。最後のセク ションでは、それぞれの規則について、その規則の通り設計をすれば避けられるパフォーマンスに関わ る間違いやすい例を添えて、詳しく説明します。 *TTCP : LANを介してメモリからメモリへコピーした時のスループットを測定するパフォーマンス・ユーティリティ。 効率的なデザインのガイドライン 概要で述べた通り、システム・パフォーマンスの決定における最も重要な事柄はPCIカードの選択です。 観察された性能差の大部分が、PCIのインプリメンテーションの差に起因します。効率的なパフォーマン スのPCIデザインを行うためには、数多くの規則を守らなければなりません。この規則をまず以下に紹介 し、最後のセクションで再度詳細に説明します。 1) アドバンスドPCIコマンドの実行 iii n データが5バイト以上の(この場合はMRを使用します)、1キャッシュライン内におさめら ® れている場合は、Memory Read Line (MRL)を使用してリードします。Pentium Processor ® およびPentium Pro Processorでは、キャッシュ・ライン・サイズは32バイト(8 ダブル・ ワード)です。 n 2つ以上のキャッシュ・ラインにまたがるデータのリードには、Memory Read Multiple (MRM)を使用します。 n 複数のキャッシュ・ラインの書き込み(アライメントが必要)には、Memory Write Invalidate (MWI) を使用します。MWIコマンドを開始するために、長いMemory Write (MW)コマンド INTEL CORPORATION 1 を切り離してはいけません。 2) 長いバースト転送の使用 n リードの場合、良好なパフォーマンスを得るために、プラットフォームによっては少なく とも64 ダブル・ワード(32ビット/ダブル・ワード)のバーストが必要です。 n ライトの場合、バーストは少なくともキャッシュ・ライン・サイズと同じ大きさが必要で す。 3) I/Oコマンドではなく、メモリ・コマンドを使用します。 4) レイテンシを最小限に抑えます。スレーブ・アクセスにできるだけ迅速に応答して、ブロック転送に 待ち状態が挿入するのを避けます。 5) 従来の経験ではなく、これらの規則に従います。現在のシステムは規則を守らなくても良好なパフォ ーマンスを示しているかもしれませんが、将来のプラットフォーム上でもそうとは限りません。 ここにあげた規則はすべて、PCIカードのデザイナに有益なものばかりです。この規則を守れば、どのチ ップセット(プロセッサ、メモリ、およびPCIに接続されるチップ)においても良好に機能するPCIデザ インが実現できます。また、システム・インテグレータも、周辺デバイスを選択する際に、この規則に 基づいてカード・ベンダに対する質問を行うことができます。PCIのインプリメンテーションは、システ ム・インテグレータが考慮するべきファクタの1つにすぎませんが、多くの場合、上記の規則を守る事が 最も高いパフォーマンス/最良のシステムを実現するPCIカードとなります。最後のセクションに示す通 り、上記の規則から大きくはずれるだけでシステム・パフォーマンスが低下する結果となります。 PCIパ パフォーマンスの評価 PCIパフォーマンスの評価には、2つのタイプの情報が必要です。まず1つ目は、異なったシステムのパ フォーマンスを比較するのに使用できる一連のPCIパフォーマンス・メトリックスです。2つ目は、観察 されたパフォーマンスの基本的な要因を理解するのに役立つPCIパフォーマンスの詳しい記述です。この 詳しい記述は、項目別のPCIパフォーマンス・チャートとして表示がされ、非常に便利に使用する事がで きます。 PCIパフォーマンスのメトリックス PCIパフォーマンスの記述に役立つメトリックスは、バス使用率とスループットの2つです。このセクシ ョンでは、よく使われるこの2つのメトリックスを、3つ目のメトリックスであるPCI効率と共に定義し ます。 n PCI使用率 - PCIバス使用率は、PCIバスの使用される期間中のクロック数をPCIクロックの合計数 で割ったものです。Frame#、Irdy#、またはTrdy#のいずれかがアサートされている間の、PCIクロ ック数がPCIバスが使用されている期間のクロックとして使用されます。 n PCIスループット - スループットの標準的な定義は、単位時間当たりに転送されたデータ数です。 このメトリックスは、次の2つの部分、Thrptdata - 単位時間当たりに転送されたアプリケーション・ データ量と、Thrptcontrol - 観察されたThrptdataを達成するために必要なコントロール・オーバヘッド の量に分けられます。本書では、スループットという用語は通常、アプリケーションごとに観察さ れるスループット、すなわちThrptdataを意味します。 n PCI効率 - PCIカードによるThrptdataの最大化とPCI使用率の最小化がどの程度うまく行われている かを表します。PCI効率が1に近い場合は、PCIバス上で無駄に消費されるクロックがほとんど無い ことを表しています。アドレス・サイクル、コントロール・データ・サイクル、ターゲット・ウェ イト・サイクル、およびイニシエータ・ウェイト・サイクルはすべて、PCI効率を0への低下に近づ ける原因となります。PCI効率は、PCIのバス・サイズのワードで規定されたThrptdataをPCI使用率で 割った値に等しくなります。他の2つのメトリックスと違って、PCI効率はPCIバスの使用されてい る割合から独立しています。このため、PCIトラヒックの生成に使用されるベンチマークの性能が システムの非PCI部分により制約を受けるような場合でも、2つのカードのPCIインプリメンテーシ INTEL CORPORATION 2 ョンを比較することができます。このメトリックスはまた、システム・スケーリング(つまり、さ らにカードが追加された場合のシステムの性能の程度)を理解するためのキーともなります。 PCI PCI 効 率 図2に、以前にスループットを紹介したのと同じ一 連のNICのPCI効率を示します。図に示す通り、現 在のNICのPCI効率には大きなばらつきがありま す。PCI効率はNICスループットを判断する際の唯 一のファクタですが、スループット(図1)とPCI効率 (図2)の強い相関関係から、重要なファクタでもあ ることがわかります。 PCIパフォーマンスのチャート 下記の3つのPCIパフォーマンス・メトリックス は、パフォーマンス全体の比較には便利ですが、 観察されたパフォーマンスの根本的な原因を説明 するのには役に立ちません。この目的は、以下に 説明する一連の3つのチャートで達成されます。 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 A B C D E ネットワーク・インタフェース・カード 図2. PCIインターフェース・カードのPCI効率 PCI使用率 0.7 0.6 0.5 0.4 PCI PCI ス ル ー プ ッ ト 0.3 0.2 9% 2% 0.1 Int Ack IO Wr IO Rd Mem Wr Inv Mem Wr Mem Rd Mlt Mem Rd Ln 0 Mem Rd 下側の円グラフは、起こりう るPCIスループットの合計を 表しています。この図では、 明青色のThrptdataと茶色の Thrptcontrol、および黄色の未実 現のPCIスループットの分割 状況を表しています。PCI効率 は、明青色部分(9%)をPCI使用 率チャートの暗青色部分 (11%)と赤色部分(11%)の合計 で割った値に等しくなりま す。 使用されたサイクルのフラクション 図3のPCI使用率チャートは、PCIパフォーマンスの概要を表示するためのものです。図3の右側にある円 グラフは、観察されたパフォーマンスの最上位レベルを抽象化し示されています。上側の円グラフ、PCI 使用率は、一連のすべてのPCIバス・サイクルが3つの異なった状態にどのように分割されるかを示して います。黄色は未使用またはアイドル状態のサイクル、暗青色はデータの転送に必要なサイクル、赤色 はオーバヘッド・サイクル(ア ドレス・サイクル、ウェイト・ サイクル、および4バイト未満 1 PCI PCI 使 用 率 のデータを搬送するデータ・ 0.9 11% サイクルの無効のデータ分) 0.8 を表しています。 11% PCI 効率 = 0.42 コマンド名 図3. PCI使用率チャート 図3の左側にあるヒストグラ ムは、各PCIコマンドの相対アクティビティと効率を示しています。バスがアクティブであった間のPCI クロックだけが積算され表示されています。各バーの最高地点は、指定されたコマンドごとにPCIバスが 保持(非アイドル)される時間のフラクションを表しています。赤色および暗青色は、PCI使用率チャー トと同様に、各コマンドごとにオーバヘッド・クロックとデータ・クロックを表しています。 INTEL CORPORATION 3 PCIバースト使用率 図4のPCIバースト使用率チャートを使って、バースト・サイズごとのPCIアクティビティを解析できま す。バースト・サイズは、ダブル・ ワード単位で示されます。青色ラ 1 インは、各サイズの転送ごとに移 データ・フラクション 0.9 動したデータのフラクションを バス・フラクション 表し、紫色ラインは、各サイズの 0.8 効率 転送ごとに使用された非アイド 0.7 ルPCIクロックのフラクションに 0.6 対応しています。 0.5 0.4 0.3 0.2 0.1 55 52 49 46 43 バ ー ス ト ・ サ イ ズ (ダ ダブル・ワード単位) 図4. PCIバーストの使用率 Int Ack IO W r IO Rd Mem W r Mem W r Inval Mem Rd Mem Rd Ln Mem Rd Mult 12000 10000 45 41 37 29 25 21 17 9 1 5 13 33 53 6000 図5に示す最後のチャートは、コ 4000 マンドの使用頻度をコマンド名 2000 とバースト・サイズの両方をプロ ットしたもので、これを使ってコ 0 マンドとバースト・サイズの混ざ った解析が行えます。このチャー トから、コマンドがどの程度正し バ ー ス ト ・ サ イ ズ (ダ ダブル・ワード単位) く使用されているかを判断する ことができます。たとえば、図5 に示されたカードは、Memory Read MultipleとMemory Read 図5. PCIコマンドの使用頻度 Lineの両方を使って4個のダブ ル・ワード転送を行い、Memory Read LineとMemory Readの両方を使って1個のダブル・ワード転送を行っています。 49 時間数 8000 PCIコマンド使用頻度 40 37 34 31 28 25 22 19 16 13 7 10 4 0 1 青色ラインと紫色ラインの差に より、赤色ラインでプロットされ た特定のバースト・サイズの転送 のPCI効率が示されます。効率1 は、バスの占有期間中にクロック ごとに4バイトのデータをパスす る転送と定義されています。すべ てのサイクルで最低1つのアドレ ス・サイクルが必要なため、効率 1に近い値は達成できますが、効 率1自体を達成することはできま せん。効率値は各バースト・サイ ズごとにプロットされますが、効 率データは実際非常に大量の転 送が行われた場合には正確なも のとなります。 規則の遵守によるパフォーマンスの向上 メトリックスとチャートの定義が終わったら、次はそれぞれの規則がPCIパフォーマンスに及ぼす影響を 調べます。ここでは、それぞれの規則をさらに詳しく説明します。規則の多くは、当該規則を守ること で達成できるPCI効率の向上が調べられます。 INTEL CORPORATION 4 経験ではなく、規則の遵守 最小限のコストで最大限のパフォーマンスを達成するために、多くの場合、PCIカードの設計者は経験を 頼りに必要な一連のパフォーマンス特性を決定します。過去においては、このアプローチの結果、設計 者が一部の規則をパフォーマンスにはそれほど重要ではないと結論づけたこともあります。上記の方法 でデザインされたカードはたいてい、テストが行われたプラットフォームでは極めて良好に機能しま す。しかし新しいプラットフォームになると、その同じカードがうまく機能しません。規則を無視する と、カードの耐用寿命スパンが著しく短縮されてしまうのです 規則ではなく経験に基づいたデザインがなぜ悪いかの例を図6に示します. Int Ack IO Wr IO Rd Mem Wr Mem Wr Inval Mem Rd Mem Rd Ln Mem Rd Mult チップセット A 12000 10000 6000 100000 4000 80000 時間 数 時間 数 8000 チップセット B 2000 40000 53 49 41 1 2 3 4 5 6 7 8 9 57 バ ース ト ・ サイ ズ(ダ ダ ブル・ ワー ド) 45 33 37 25 0 29 17 21 9 13 20000 5 1 0 60000 バ ース ト・ サイ ズ(ダ ダ ブル ・ ワー ド) 図6. チップセットによるバースト長の制約 この図では、同じベンチマークを実行する2つの異なったプラットフォーム上の特定のNICに対するPCI コマンドの使用状況が、表されています。チップセットBのバーストはわずか8ダブル・ワードに制約さ れていますが、チップセットAではテストされるNICのフル・バースト・サイズ、つまり60ダブル・ワー ド近くが使用可能です。チップセットBの最適化を行う場合、設計者は規則を無視してすべてのバースト 長を最大8ダブル・ワードに制約することで、費用の節約を図ることがあります。チップセットAを装備 したプラットフォームでは、規則に従ってデザインされたNICは上記の図に示すようなロング・バースト でデータを転送し、効率が大幅に向上します。チップセットBに対応してデザインされたNICでは、わず か8バイトのバーストが続けて使用され、効率の向上は見られません。 本書にのべる規則のすべてに、上記と同じシナリオが発生すると思われます。チップセット・デザイナ は、必要なだけの数のPCI規則に従ってパフォーマンスの最適化を実現します。PCIカード・デザイナが、 PCI規則に従ってデザインしたカードが将来のプラットフォームでもうまく機能することを保証できる ただ1つの方法なのです。 ロング・バーストの使用 PCIカードは、X個のダブル・ワードの転送をイニシエートするたびに、転送が開始されるまでにL個の クロックを待つ必要があります。いったん転送が開始されると、多くの場合、転送はPCIクロック当たり 1ダブル・ワードの速度で行われ、転送効率X/(X+L)が実現されます。PCIカードはLの値を完全には制御 できないため(この値の大部分は、プラットフォームが決定します)、効率の高い転送を達成するため にバースト・サイズXを最大化する必要があります。リード・コマンドの場合、PCIカードは良好なPCI 効率を達成するために、最低64ダブル・ワードのバーストを使用できなければなりません。ライト・コ マンドの場合は、最低1キャッシュ・ラインのバーストが使用できなければなりません。このバースト・ サイズは、プラットフォームの全レンジに渡って良好なPCI効率を提供するのには十分ですが、デザイナ INTEL CORPORATION 5 はさらに長いバーストを使って改善されたPCI効率をなおも向上させるかどうかを決めることができま す。 PCI 効率 さまざまなNIC、プラットフォー 0.6 ム、オペレーティング・システム、 0.5 およびPCIのリード・パフォーマン スのストレス・テストを行うネッ 0.4 トワーキング・ベンチマークを使 0.3 って一連の実験を実行した場合の 平均バースト長の関数として、図7 0.2 にPCI効率を示します。PCIバス上 で行われるすべての転送に対し 0.1 て、平均バースト長が算出されま 0 す。転送には、NICがロング転送 0 5 10 15 20 を使用するデータ転送、かなりの 短縮化が必要なNICコントロール 平均 PCI バースト・サイズ(ダブル・ワード単位) 転送、NICが長さを制御できない 上位レベル・プロトコル転送 図7. バースト長に大きく影響されるPCI効率 (TCP/IPアクノリッジなど)があ ります。上記の図から、PCI効率が バースト長だけに左右されるのではなく、高いPCI効率を得るためにはロング・バーストも必要であるこ とがわかります。 アドバンスドPCIコマンドの実行 普及度の高いネットワーク・インタフェース・カードの中には、MRとMWしか実行しないものがありま す。この場合、カードはたいてい短いバースト長に制約され、良好なパフォーマンスは得られません。 アドバンスドPCIコマンドを実行することで避けられるパフォーマンスの間違いやすい点を、PCIリー ド、PCIライトの順に説明します。 INTEL CORPORATION 6 アドバンスド・リード・コマンド PCI 使 用 率 4% 3% 0.8 0.7 0.6 NIC B: 効率 57% 0.5 0.4 PCI ス ル ー プ ッ ト 0.3 4% 0% 0.2 0.1 Int Ack PCI 使 用 率 0.9 4% 3% 0.8 0.6 0.5 PCI ス ル ー プ ッ ト 0.4 4% 0% 0.3 0.2 Int Ack IO Wr IO Rd Mem Wr 0 Mem Wr Inv 0.1 Mem Rd Mlt NIC A: 効率 57% 0.7 Mem Rd Ln コマンド名 Mem Rd 使用したサイクルのフラクション IO Wr IO Rd Mem Wr Inv Mem Wr Mem Rd Ln Mem Rd Mlt 1 0 Mem Rd 使用したサイクルのフラクション 1 0.9 コマンド名 図8. チップセットAのリード・パフォーマンス 1 PCI 使 用 率 7% 0.8 0.7 42% 0.6 NIC B: 効率 42% 0.5 PCI ス ル ー プ ッ ト 7% 1% 0.4 0.3 0.2 0.8 15% 0.7 0.6 0.5 PCI ス ル ー プ ッ ト 11% 1% 0.4 0.3 0.2 IO Wr Int Ack IO Rd Mem Wr Inv Mem Wr 0 Mem Rd Mlt 0.1 Mem Rd Ln Int Ack IO Wr PCI 効率 = 0.14 Mem Rd NIC A: 効率 14% PCI 使 用 率 12% 0.9 使用 したサイ クルの フラク ション コマ ンド名 1 IO Rd Mem Wr Inv Mem Wr Mem Rd Mlt 0 Mem Rd Ln 0.1 Mem Rd 使用 したサイ クルの フラク ション 0.9 PCI 効率 = 0.42 コマ ンド名 図9. チップセットBのリード・パフォーマンス メイン・メモリのプリフェッチ可能領域からのPCIマスタ・メモリ・リードを行う際に正しいアドバンス ド・コマンドを使用することで、性能を著しく向上させることができます。チップセットは多くの場合、 PCIリード・コマンドの類を手がかりとして使用して、メイン・メモリからリードするデータのブロック・ サイズの制御と、データをプリフェッチするべきかどうかの判断を行います。MRコマンドの使用時のよ INTEL CORPORATION 7 うにデータを小さいブロックでリードし、プリフェッチしない場合は、チップセットは転送された連続 するダブル・ワードの間にウェイト・ステートを挿入する必要があるか、ロング・バーストを維持でき ないかのどちらかです。 1つのPCIダブルワード(4バイト)データという少量のデータのリードには、MRコマンドを使用します。1 つのキャッシュ・ライン内のデータのリードには、MRLコマンドを使用します。 2つ以上のキャッシュ・ラインに保有されたデータの読み取りには、MRMコマンドを使用します。チッ プセットの多くは、MR、エイリアスMRL、MRMに対処するためにキャッシュ・ライン全体をフェッチ しますが、すべてのチップセットが上記のような簡素化を行うわけではないので、コマンドは推奨され た通りに使用するのが良いでしょう。 図1と図2で最もパフォーマンスの差が大きかった2つのNIC、NIC AとNIC Bを使って、以下にアドバンス ド・リード・コマンドの使用の重要性を示します。図8に示すように、NIC BはMRLは実行しますが、MRM は実行しません。ここでは、たまたまMRMコマンドがなくてもNIC Bのパフォーマンスに影響は出ませ んが、どこか他ではパフォーマンスが低下する可能性もあります。NIC AはMRコマンドしか使用しませ ん。 この2つのNICのパフォーマンスは、アドバンスド・コマンドやそれほど長いバーストを必要としない旧 タイプのチップセット、すなわちチップセットAと、アドバンストコマンドを使用する事で最適化される チップセット、すなわちチップセットBの両方の場合が表示されています。図8から、PCIコマンドに基 づいた最適化を行わない、バースト長に無関係なチップセットでは、上記の2つのNICの機能は非常によ く似ていることがわかります。図9のように、PCIコマンドに基づいてパフォーマンスが最適化されてい るチップセットでは、NIC AでMRコマンドだけを使用すると、パフォーマンスがPCI効率14%という許さ れないレベルに下がります。NIC Bでは、PCI効率は42%に下がるだけです INTEL CORPORATION 8 図11に、NIC Aで見られる大幅なパフォーマンスの低下の理由を示します。チップセットAでは、ほとん どのデータの移動は16個のダブル・ワード転送で行われます。チップセットBでは、わずか8、4、また は1ダブル・ワード・バーストで重要な転送フラクションが行われるため、バースト・サイズが大幅に減 少します。 図10に示すように、NIC Aのバースト長の低下は必要のないものです。アドバンスド・リード・コマンド を使用すると、NIC Bでは平均バースト長の維持はもちろん、その増加も可能で、PCI効率は42%という かなりの値に保たれます。 チップセット A -効 率 57% ラー ジ MRL チップセット B -効 率 42% ヒュー ジ MRL 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.2 0.2 0.1 0.1 0 1 45 89 133 177 221 265 309 353 397 441 485 529 573 617 661 705 749 793 837 881 925 89 85 81 77 73 69 65 61 57 53 45 49 41 37 33 25 29 17 21 9 13 0 5 1 Data Frac. Bus Frac. Efficiency 0.3 バ ー スト・サイズ(ダ ブル ・ワ ー ド単 バ ー スト・サイズ(ダ ブル ・ワ ー ド単 図10チップセットによるNIC Bのパフォーマンス チップセット A - 効 率 57% チップセット B - 効 率 14% - 8 ダ ブル ・ワ ー ド - 16 ダ ブル ・ワ ー ド 17 16 15 14 13 0 12 0.1 0 11 0.2 0.1 10 0.3 0.2 9 0.4 0.3 8 0.5 0.4 7 0.6 0.5 6 0.7 0.6 5 0.8 0.7 4 0.9 0.8 3 0.9 2 1 1 1 1 2 3 4 5 6 7 バースト・サイズ(ダブル・ワード) 図11. チップセットによるNIC Aのパフォーマンス INTEL CORPORATION 9 8 9 アドバンスド・ライト・コマンド アドバンスド・ライト・コマンドMWIの使用も、すべてのチップセットにおいてハイ・パフォーマンスを 達成するのに重要なことです。MWIは、大きさが1キャッシュ・ライン以上で、始まりと終わりがキャッシ ュ・ラインの境界上にあるデータのブロックを転送するのに使用します。ブロックがキャッシュ・ライン に整合されていない場合、MWIコマンドではなくMWコマンドが強制的に開始されるPCIカードでは、MWI を開始するためのMWの切断は行われません。チップセットがMWIに最適化されている場合は、キャッシ ュ・ラインの境界でMW転送を切断し、NICがMWIを開始するのに最適なキャッシュラインの境界エリアを 提供します。 MWIの使用の重要性のあらましを示すケース・スタディを、以下に示します。リード・コマンドのケース・ スタディで使用したのと同じ2つのカードを、ここでも使用します。NIC AはMWしか実行しませんが、NIC BはMWとMWIの両方を実行します。図12に、MWとMWIの区別をしない旧タイプのチップセット(チップ セットA)を装備したプラットフォームでの,2つのNICのパフォーマンスを示します。また、図13に、MWI に最適化したチップセットに対するこの同じ2つのNICのパフォーマンスを示します。チップセットBへの 変更は、NIC Aが36%の効率しか維持できないため、両方のNICでPCI効率の低下を招いています。NIC Aは、 チップセットAではデータの移動はほとんど10 ダブル・ワードMWで行われますが、チップセットBでは4 ダブル・ワードMWしか使用できません。NIC BはMWIを使用しているため、チップセットBでは16、24、 および32 ダブル・ワードのもっと長いバーストを保持でき、53%のPCI効率を保持するこができます。 PCI 使 用 率 4% 2% 0.8 0.7 NIC B: 効 率 66% 0.6 0.5 PCI ス ル ー プ ッ ト 0.4 3% 1% 0.3 0.2 0.7 0.6 0.5 PCI ス ル ー プ ッ ト 4% 0% 0.4 0.3 0.2 Int Ack IO Wr IO Rd Mem Wr Inv Mem Wr Mem Rd Mlt 0 Mem Rd Ln 0.1 Mem Rd NIC A: 効 率 50% Int Ack IO Wr PCI 使 用 率 4% 2% 0.8 使用されたサイクルのフラクション コマンド名 IO Rd Mem Wr Mem Wr Inv 0.9 Mem Rd Mlt 1 0 Mem Rd Ln 0.1 Mem Rd 使用されたサイクルのフラクション 1 0.9 コマンド名 図12. ライト・コマンドPCIのパフォーマンス(チップセットA) INTEL CORPORATION 10 1 PCI 使 用 率 8% 0.8 13% 0.7 0.6 NIC B: 効 率 53% 0.5 PCI ス ル ー プ ッ ト 8% 1% 0.4 0.3 0.2 0.1 0.8 9% 0.7 0.6 78% 0.5 PCI ス ル ー プ ッ ト 12% 1% 0.4 0.3 0.2 Int Ack IO Wr IO Rd Mem Wr Mem Wr Inv 0 Mem Rd Mlt 0.1 Mem Rd Ln Int Ack IO Wr IO Rd PCI 効率 = 0.36 Mem Rd NIC A: 効 率 36% PCI 使 用 率 13% 0.9 使用されたサイクルのフラクション コマンド名 Mem Wr Inv Mem Wr Mem Rd Mlt Mem Rd Ln 1 0 Mem Rd 使用されたサイクルのフラクション 0.9 87% PCI 効率 = 0.53 コマンド名 図13. ライト・コマンドPCIのパフォーマンス(チップセットB) アドバンスドPCIコマンドMRL、MRM、およびMWIの使用は、すべてのPCIプラットフォームにおいてハイ・ パフォーマンスを達成するのに重要なものです。 レイテンシの最小化 PCI転送中に、PCIカードがクロックを追加することがよくあります。ここでは、これらの追加クロックは すべて、レイテンシという名前で呼びます。レイテンシが追加されるのは、カードが別のPCIマスタによる リードに応答し、要求されたデータを返すために多数のクロックを使用する場合です。また、Frame#の立 ち下がりエッジからIdry#が真になるまでの間の長い遅延がカードに発生した場合は、転送の開始時にレイ テンシが追加されます。PCIカードがレディ・ラインをデアサートした場合は、個々のダブル・ワード転送 の間にレイテンシが追加されることもあります。これらのレイテンシはすべて、バースト長セクション、L / (X+L)で示された等式に従って、PCI効率の低下の原因となります。ここで、Lはすべてのカードレイテン シとチップセット・レイテンシの合計、Xはバースト長を表します。PCIカードのレイテンシを最小化する ことで、PCI効率が最適化されます。 I/Oコマンドではなくメモリ・コマンドの使用 I/Oリードおよびライト・コマンドは通常、PCIカードのI/Oスペースをアドレス指定するためにCPUが発行 します。I/Oコマンドは多くの場合、チップセット内およびCPU内のオペレーションをシリアル化します。 このシリアル化は、PCI効率の低下という形では現れませんが、CPU使用量の増加によってパフォーマンス を低下させます。PCIカード・デザイナは、システムのシリアル化が必要なそれらのロケーション専用のI/O スペースを使って、上記の影響を最小限に抑えることができます。それは、それらのロケーションはすべ て、PCIメモリ・スペースに置くことです。 システムの測定 ここで使用した高速なLANカード/グラフィカルカードの様なパフォーマンス指向のPCI解析は、Intel社の Platform Architecture Labsで開発されたものです。このツールは、システム・パフォーマンスの解明と改善 に非常に有用であることが判明しました。これがPCIカード・デザイナやシステム・インテグレータに便利 なツールだということは、図を見た人からよく聞かれる「どうやったら、こんな図が描けるのですか」と いう質問で一層明らかになりました。この質問に答えるために、IntelのPlatform Architecture Labsと Computing Enhancement Groupは、Hewlett Packard Boeblingen Instrument Divisionと協力し、Intel社が開 発したPCIパフォーマンス解析技術、コンセプト、およびメトリックスに基づいた新しい機能を使って、HP 社が自社のPCIバス解析ツール(PCIエクセサイザ)を強化しました。その結果、PCI製品の開発から評価 INTEL CORPORATION 11 に携わるエンジニアが簡単にPCIパフォーマンスの比較、改善を行えるフルセットのPCIデザイン・ガイド ライン、パフォーマンス測定メトリックス、解析ツールHP E2972A PCIバス・パフォーマンス・アナライ ザが生まれました。 結論 PCIバスを適切に使用することで、最大限のシステム・パフォーマンスを引き出す一方、PCIバスとCPUに かかる負荷を最小限に抑えることができます。PCIバス効率は、本書に示す規則を守ることで大幅に強化さ れます。PCIカード・デザイナは、本規則のリストを念頭に置いてデザインを行います。システム・インテ グレータは、ある程度はシステムが本規則のリストに適合しているかどうかを基準にして、システムに含 めるべきカードを選択し、よりよいパフォーマンスを得ることができるでしょう。Intel社とHP社の協力に より、システムのPCI効率の測定と解明が簡単に行えるようになりました。 i 本報告書は、www.intel.comから入手できます。"Efficient Use of PCI"で検索してください(あるいは、 http://support.intel.com/oem_developer/chipsets/pci/general/pci001.htmから入手できます)。 ii 本報告書の中の図のデータはすべてIntel社、Platform Architecture Labsによる社内テストで得られたもの です。 iii 本書の旧版では、2キャッシュラインにまたがるデータにはMRL、3キャッシュライン以上にまたがるデ ータにはMRMの使用をお勧めしました。この推奨に従ってもパフォーマンスはほんのわずか向上するだ けで、PCI仕様と異なった使用法を勧めるには値しません。本報告書は、PCI仕様に準拠するよう変更さ れています。 INTEL CORPORATION 12