Open1

ラズパイのPCIEのDUAL HATについて

nnn112358nnn112358

Raspberry Pi 5 の PCIe M.2 HAT(単一・デュアル)技術解説

はじめに

Raspberry Pi 5 では、ボード上にPCIe 2.0 x1(500MB/s相当)のインターフェースが16ピンのFFCコネクタで用意されており、これを利用してM.2 SSDを接続するアダプタが「M.2 HAT+」です。公式のM.2 HAT+(Mキー×1スロット)はこの単一レーンと直結する形で設計されており、NVMe SSD(M.2 2230/2242)を最大500MB/sで転送できます。専用のPCIeスイッチは搭載せず、あくまで物理変換ボードとして機能します。

デュアルM.2 HATの技術的仕組み

一方、デュアル M.2 HAT等の複数ポートHATでは、この単一レーンを複数のデバイスに分配する必要があります。技術的には、PCIeのパケットベース仕様を利用し、下位にPCIeパケットスイッチやマルチプレクサを挟んでレーンを分岐しています。多くの製品ではASMedia社製のPCIeスイッチICを採用し、上流の1ポート(x1)から下流へ2~4ポートに分配します。そのためOS上では複数のSSDが独立したデバイスとして認識可能です。

代表的な製品例

  • Waveshare社の「PCIe To 2-CH M.2 HAT+」:Pi 5のPCIe x1を2つのM.2スロットに振り分けています。本製品ではPCIe Gen2(5GT/s)動作を想定しており、SSD駆動中はACT(動作)LEDが各デバイスごとに点滅します。またINA219(TI製)を載せており、SSD電源の電圧・電流をリアルタイム監視できます。

  • Geekworm/SupTronics X1004 HAT+:2スロット仕様で、ASMedia製ASM1182eスイッチを搭載し、上流1ポートを2分配します。

  • Pimoroni NVMe Base Duo:2スロット仕様で、ASMedia ASM1182eを使用しており、Pi側の1レーンを2つに分けています。

  • Pineboards HatDrive!シリーズ:HatDrive! AIは1つのMキーNVMeスロットと1つのEキー(Coral Edge TPU)スロットの2ポートを持ち、HatDrive! DualはNVMeスロット×2を備えています。HatDrive! DualではRAID-1機能をサポートし、2台のSSDを冗長化用途にも使用できます。

  • Seeed社:PCIe2.0→Dual M.2 HAT(ASM1182e搭載、Gen2対応)と、PCIe3.0→Dual M.2 HAT+(ASMedia ASM2806搭載、Gen3対応)の2種類が出ています。後者はPi 5のPCIe x1をGen3(8GT/s)動作させ、理論上約8Gbpsの帯域を共有可能です。

  • その他:Geekworm X1005(2スロット下部設置型)やSeeed PCIe3.0基板、PipBerry HAT+(HatBrick!)など、用途に応じた多ポートHATが市場に存在します。

PCIe帯域の制限と注意点

これらのボードでは、全て上流の1レーン(x1)しか持たない点に注意が必要です。例えばASM1182e搭載の場合、PCIe Gen2(5GT/s)で最大約5Gbps(理論約500MB/s)まで共有帯域が確保されます。実用上は約400MB/s程度が上限となり、2台同時に大容量アクセスを行うと各々約200MB/sずつに分配されます。

一方ASMedia ASM2806のようなGen3対応スイッチなら8GT/s(約985MB/s)まで増加し、理論上約1GB/sを2台間で共有可能です。ただしRaspberry Pi 5 側もデフォルトではPCIe Gen2動作のため、Gen3化には設定変更(/boot/firmware/config.txt に dtparam=pciex1 を追加)などが必要です。

代表的なPCIeスイッチ/制御チップ

チップ名 メーカー 機能・備考 使用例(代表基板)
ASM1182e ASMedia (台湾) PCIe 2.0 x1 → x2 分岐パケットスイッチ。上流1×Gen2, 下流2×Gen2。各スロットに5GT/s共有。 Geekworm X1004, Pimoroni NVMe Base Duo
ASM1184e ASMedia (台湾) PCIe 2.0 x1 → x4 分岐パケットスイッチ。上流1×Gen2, 下流4×Gen2。 Geekworm X1011(4スロット)
ASM2806 ASMedia (台湾) PCIe 3.0 スイッチ(Upstream2レーン, Downstream4レーン)。Gen3対応で8GT/sまで共有可能。 Seeed PCIe3.0→Dual M.2 HAT+
INA219 TI (米国) 電圧・電流モニターIC。5Vラインの電力監視用。 Waveshare 2-ch M.2 HAT+(SSD電源監視)
HAT+ EEPROM 多社 各HAT+仕様のID EEPROM(拡張ボード認識用)。 公式・非公式各種HAT+に搭載

PCIe帯域の制限・対策

上述の通り、全ての拡張ボードはPi側の1レーンに依存するため帯域は共用になります。たとえばASM1182e系の基板では合計5Gbps(約400MB/s)が上限で、両スロット同時使用時は1台あたり約200MB/sに制限されます。ASM2806を使った基板でも上流1レーン(Gen3x1)分の帯域が限界です。

各製品側ではこの前提の下で以下のような工夫が見られます:

  • 電源供給の強化:デュアルSSDを安定駆動するため、追加のDC/DCコンバータや外部電源入力(Piの5Vや専用コネクタ経由)を搭載する例が多いです。SupTronics X1004ではGPIOヘッダから5V電源を取ってSSDに3.5A以上供給する設計となっています。Waveshare HAT+もPCIeコネクタ以外に外部給電端子を備えています。

  • 冷却対策:SSDを2枚挿すと発熱増大するため、各製品にヒートシンクやファン対応設計を施しています(公式HAT+のアクティブクーラ付きケースなど)。

  • 機能オプション:Pineboards HatDrive! DualではRAID-1ミラーリング機能を提供し、帯域よりも冗長性を重視した運用が可能です。また、一部ボードではNVMeブート対応の改造や最新ファームウェア設定によりSSDからの起動をサポートします。ただし、ASM1182e系スイッチ搭載板では現状Piのブートローダが未対応なため、OS起動にはmicroSDカードが必要になる場合もあります。

まとめ

Raspberry Pi 5向けM.2 HAT各種はPCIeレーンをスイッチで分岐することで複数SSDを扱える設計となっており、使用するチップや基板設計によって実効帯域や機能に差があります。各製品の技術仕様書やWiki、公式資料を参照することで、搭載チップや性能の詳細を確認できます。

参考資料

Raspberry Pi公式M.2 HATドキュメント、Waveshare製品情報およびWiki、CNX Software等のレビュー記事、ASMedia社チップ仕様など。​​​​​​​​​​​​​​​​