• Home
  • /
  • 記事を探す
  • /
  • 拡張性とマルチホスト | 第2回 - PCI Expressについて 入門編

拡張性とマルチホスト | 第2回 - PCI Expressについて 入門編

........

  • 更新日
  • 2023.05.09
  • 公開日
  • 2021.10.26

 前回は「PCI Expressについて 入門編」の第1回として、PCI Expressとはどういったものか、その成り立ちや特徴、そしてGenerationにおけるレーン数と転送速度について解説致しました。
第2回の今回は、PCI Expressの強みである拡張性、及びマルチホスト対応について解説します。特にマルチホスト対応は図と共に解説しているので必見です。

1. 拡張性

 PCI Expressでは、デバイスはPeer-to-Peer(1対1)で接続されるため、接続デバイスを増やためにはスイッチデバイスが必要です。スイッチデバイスは複数のポートを持ち、各ポートにEP(End Point)デバイスを接続してデバイス間通信を行います。Ethernetの接続に利用されているスイッチングハブとよく似ています。

CK000140_fig1-1.PNG
図2-1. デバイスの追加

 

2. マルチホスト対応

 PCI Expressでは、スイッチデバイスにNTB(Non Transparent Bridge)機能を持たせることにより、マルチホスト構成に対応出来ます。

ホストデバイスとは

 CPUとRC(Root Complex)の組み合わせをホストデバイスと呼び、接続される配下のデバイスを管理します。現在は、CPUとRCの機能がワンチップにインテグレートされたSoC(System on Chip)デバイスが一般的です。

CK000140_fig1-2.jpg
図2-2. ホストデバイス

 

マルチホスト構成例

 スイッチデバイスに接続された複数のEPデバイスは、1つのホストデバイスによって管理されますが、スイッチデバイスがNTB(Non Transparent Bridge)機能をサポートすることで、HOST①とHOST②によるマルチホスト構成を実現出来ます。マルチホスト構成をとることによって、負荷分散やデータのパイプライン処理、ホストの冗長化を図ることが出来ます。

 

CK000140_fig1-3.jpg
図2-3. マルチホスト構成例

 

NTB機能非対応スイッチではマルチホスト構成が機能しない理由

 ホストデバイスは、配下にあるスイッチデバイス、EPデバイスの初期化・管理を行いますが、スイッチデバイスのNTB機能により、ホストデバイスが対象とする初期化・管理区域を分離することが出来ます。NTB機能がない場合は、複数のホストデバイスが各EPデバイスに対して重複して初期化・管理を実施してしまうため、システムとして正常動作させることが出来ません。

CK000140_fig1-4.jpg
図2-4. NTB機能がない場合

 

 

PCI Expressの代表的なトランザクション

 PCI Expressのデバイスアクセスには、以下のトランザクションが用意されています。

  ・メモリトランザクション:
     データ転送に使用(メモリアドレス空間上でのRead/Write動作)
  ・コンフィグレーショントランザクション:
     デバイスの初期化、状態監視などに使用
  ・I/Oトランザクション:
     データ転送に使用(I/Oアドレス空間上でのRead/Write動作)
  ・メッセージトランザクション:
     事象(イベント)の通知などに使用

 トランザクションとは、アクセスを要求するデバイス(リクエスタ)とアクセスを受け付け完了させるデバイス(コンプリータ)の間で情報を転送するための、パケットのやり取りを指します。例えば、ホストデバイスであるHOST①がEPデバイスであるSSDに対して初期化を行う場合、HOST①がリクエスタ、SSDがコンプリータとなり、コンフィグレーショントランザクションを使用してSSDの初期化を行います。

CK000140_fig1-5.jpg
図2-5. リクエスタとコンプリータ

 

 

PCI Expressのトランザクションに対するNTBの振る舞い

 各トランザクションにおいて、NTB機能は以下のようにアクセスを制限します。

  ・メモリトランザクション:
    データ転送に使用(メモリアドレス空間上でのRead/Write動作)
    設定次第でNTBを通過出来る
  ・コンフィグレーショントランザクション:
    デバイスの初期化、状態監視などに使用
    NTBを通過出来ない
  ・I/Oトランザクション:
    データ転送に使用(I/Oアドレス空間上でのRead/Write動作)
    設定次第でNTBを通過出来る
  ・メッセージトランザクション:
    事象(イベント)の通知などに使用
    NTBを通過出来ない

 

表2-1. 各トランザクションのNTBの振る舞い

トランザクション名 NTB通過
メモリトランザクション
コンフィグレーショントランザクション
I/Oトランザクション
メッセージトランザクション

 

 

NTBの役割 その1(コンフィグレーショントランザクション 及び メッセージトランザクションをブロック)

 NTB機能は、コンフィグレーショントランザクション及びメッセージトランザクションを通過させないことにより、HOST②がEPデバイス(SSD、GPU)を初期化・管理するためのアクセスをブロックします。その結果両EPデバイスに対しては、HOST①からのみ初期化・管理が行われます。

CK000140_fig1-6.jpg
図2-6. NTB機能

 

 

NTBの役割 その2(メモリトランザクション、I/Oトランザクションに対する振る舞い)

 NTB機能は、メモリトランザクションやI/Oトランザクションの通過を制御できます。NTB機能を適切に設定することで、HOST①だけでなくHOST②からのSSD・GPUに対するメモリトランザクション・I/Oトランザクションを通過させることが出来ます。図2-7の構成でHOST①が可能な以下の動作を、図2-8のようにHOST②からも行うことが出来ます。

  ・SSDへのデータ書込み、SSDからのデータ読出し
  ・GPUへのデータ転送、GPUからのデータ転送

CK000140_fig1-7.jpg
図2-7. HOST①からデータ転送

CK000140_fig1-8.jpg
図2-8. HOST②からデータ転送

 

 

NTBの役割 その3(ホスト間データ通信)

 NTB機能を使用することで、ホストデバイス間のデータ転送も可能です。NTB機能を適切に設定することにより、 ホストデバイス間で双方向のメモリトランザクション、I/Oトランザクションを通過させる事が出来ます。

CK000140_fig1-9.jpg
図2-9. HOST間データ転送

 

 

NTBの役割 その4(MailBoxによるホスト間通信)

 

 NTB機能にMail Box機能が付加されている場合、ホストデバイス間でメッセージのやりとりを行うことが出来ます。Mail Box機能は割込みを持ち、一方のホストデバイスから他方のホストデバイスのMail Boxにデータを書込むことで送付先のホストデバイスに割込みがかかり、データをスムーズに渡すことが可能です。

CK000140_fig1-10.jpg
図2-10. Mail Box

 

CK000140_fig1-11.jpg
図2-11. Mail Box①:HOST①からHOST②へメッセージを送るときに使用

 

CK000140_fig1-12.jpg
図2-12. Mail Box②:HOST②からHOST①へメッセージを送るときに使用

 

3. まとめと次回の内容

CM_Summary.png

 第2回では、PCI Expressの拡張性とマルチホストについて説明致しました。

 PCI Express接続デバイス間でデータ処理の負荷分散やパイプライン処理を行うには、マルチホスト構成が最適です。この構成を実現するためには、スイッチデバイスがNTB機能を持つ必要があります。またマルチホスト構成にすることによって、ホストデバイスの冗長化も可能になるなど、多くのメリットを享受出来ます。

 次回の第3回は、PCI Expressの信頼性の高い接続について説明します。

こんな記事もおすすめ

その他お役立ち情報を探す

記事一覧にもどる

関連イベント