【ラズパイ5】Raspberry Pi 5 レビュー【15000円の価値はあるか?】

皆さんRaspberry Piは使用されたことありますでしょうか。シングルボードコンピューターの王者とも言えるRapsberry Piについて、今回は待望の新製品であるRaspberry Pi 5を入手しましたので詳しくレビューしていきます。

外観の変更点から基本的なベンチマーク、また、発売前から噂になっていたGPIOの入出力遅延などの問題について、実際に検証しますので、是非最後までお付き合いいただけると嬉しいです。

なお、YouTubeでは更に詳しいレビュー動画を公開しています。是非こちらもチェックしていただけると嬉しいです。

目次

Raspberry Pi 5について

2019年6月に発表されたRaspberry Pi 4から約4年、まちにまったRaspberry Pi 5が2023年9月に登場しました。日本では諸般の事情(技適の都合など)で2024年の2月になってようやくの販売開始です。

実はイチケンでは日本版の販売開始よりも前にRaspberry Pi 5を海外から直接購入して、国内版が手に入るまでの間試験的に使用していました。

海外版モデルは当然のことながら日本の技適を取得していないため、国内では電波を出すことが出来ません。このため「技適未取得機器を用いた実験等の特例制度」の適用を申請して使用しています。

ちなみに手元に届いた製品を比較する限りでは、パッケージの技適シールの有無しか差はないようです。特に基板に技適マークと登録番号の刻印は見当たりませんでした。

ハードウェアについて

外観はRaspberry Pi 4から大きく変わりました。

Raspberry Pi 4と見比べて一番目立つ変更点は、ネットワーク用のRJ45コネクタとUSB2.0コネクタの位置が入れ替わっている点です。これについてはRaspberry Pi 3シリーズまでこの配置だったものが4で入れ替わっていたので、前の仕様に元に戻ったといえます。

全体的なフォームファクタは継承しているのでGPIOや取り付けのネジ穴位置に変更はありません。ただし、

  • 3.5mmジャックの廃止
  • CSIコネクタの位置とサイズが変更
  • SoCの位置変更

などの影響により部品の実装レイアウトがかなり変わっています。このため一部のケースやヒートシンク、冷却ファンは流用できません。

なお電源ボタンが追加されているのが嬉しい点です。

基本スペック

SoC

Raspberry Pi 5に搭載されているSoC(CPU)はBroadcom BCM2712で、2.4GHzクアッドコアのものになっています。

Raspberry Pi 4に搭載されていたBroadcom BCM2711は同じクアッドコアでもベースクロックが1.5GHzでしたので、かなりの性能向上です。

実際にUnixBenchでCPUのベンチマークスコアを計測したところ、Raspberry Pi 4比で3倍以上になりました。

RAM

また、RAMの容量は4GB,8GBの選択肢があります。基板上の抵抗の実装位置でRAM容量を表示している点がユニークだと思いました。これを見ると、1, 2GBの選択肢もあるようですが、現在のところ販売されていません。今後下位モデルの選択肢が増える可能性はありそうです。

2024年8月に1GB, 2GB版の発売が開始されました。ミニマムなアプリケーションしか動かさない方や、少しでも価格を抑えたい方にはオススメです。

電源周りについて

Raspberry Pi 5では電源の要求スペックとして最低5V3Aが要求され、推奨として5V5Aの電源が必要になります。

電源の入力コネクタがUSB-Type Cになっていて一応USB PDでの給電を行うようなのですが、特に5Vより高い電圧での受電という事はしておらず、純正のUSBアダプタを利用することで初めて5V5Aが入力できるようです。(電圧も少し高いらしい)

一応よくある5V3Aの供給でも普通にボードを使用することは出来ます。ただし電圧を監視しているらしく、少しでも低下する兆候があるとコンソールおよびGUI上に警告が出て、周辺機器への電力供給が制限される旨が表示されます。

試した限りだと基本的なマウスやキーボード使用には問題なさそうでしたので、今回は5V3Aの電源で使用しています。

基本的な使い方

ここからは基本的なRaspberry Piの使用方法です。まず 公式で配布されているRaspberry Pi Imager を使用して、microSDカードにOSを書き込みます。

書き込みソフトをホストPC(今回はWindowsを使用)上で起動するとこのような形で、WiFiの設定やユーザアカウント設定を書き込むことができるようになっています。

ちなみにSSH有効化の設定もあり、SSH接続するための公開鍵情報を書き込んでおくことも可能になっています。起動してコンソールに繋いで…という事をせずともすぐにネットワークに接続された状態で起動することができるので非常に便利ですね。

OSのイメージが書き込まれたSDカードを指したら電源を接続するだけで起動します。バージョンによっては電源ボタンを押して起動します。

言語設定周りについて

ターミナルを操作していると、ホームディレクトリの下の「ダウンロード」や「ドキュメント」などのディレクトリ名が日本語になっていることに気が付きました。これはイメージ書き込み時に言語やロケール設定を日本にしたことが原因と思われます。

標準では日本語のIMEが入っていないので日本語は入力できません。要するにターミナル操作で「ダウンロード」フォルダに移動することができません。昔からこのような仕様だった気がしますが、やはり不便と言わざるを得ません。

この環境のまま使用したい場合には自分でmozc等の日本語IMEをインストールするか、あるいは支障のない限り最初のOSイメージ書き込み時にシステム言語を英語のままにしておく事をおすすめします。

デスフラッシュ現象について

ここで発売直後から噂になっていたデスフラッシュ現象を試してみます。

デスフラッシュ現象とはキセノンフラッシュデスとも言い、Raspberry Pi 2と3の頃に主にストロボを用いて写真撮影をすると何故かボードの動作に支障をきたすと問題になっていました。

カメラのストロボの光を当ててみると、その瞬間に電源が落ちることがわかります。

カメラのストロボ(キセノンフラッシュ)やレーザーポインターなど高輝度の閃光がボードに当たることで、光電効果により回路中に電子が放出されて何らかのICの動作に影響が出た結果、システム全体の動作が止まってしまうとされています。

SSDを試す

さて、ここでRaspberry Pi 5になって新しく搭載されたインターフェースであるPCIexpressについても検証を行っていきたいと思います。Pi5ではボード上のコネクタからフレキシブルケーブル経由でNVMeシールドを取り付けることで、SSDをマウントすることができるようになりました。

実際にSSDを取り付けて速度ベンチマークを取った結果が次のとおりです。SDカードスロットとも比較しています。

実測で読み込みが451MB/sの書き込みが385MB/sと、NVMeのSSDを使用している事を考えると思ったより速度が出ていません。これはPCIeが2.0であることがボトルネックになっていると考えられます。

実はRaspberry Pi 5の公式イメージでは標準でPCIe2.0までのサポートとなっています。ただし/bootパーティションの設定ファイルに下記の行を追記することで、非公式にではありますがPCIe3.0として動作させることができるようです。

dtparam=pciex1_gen=3 //を追記

この状態でSSDの速度ベンチマークを改めて取得した結果が次のとおりです。

だいたい800MB/sを超える速度で動作するようになりました。PCIe2.0の1レーンあたりの帯域上限以上の速度が出ていますので間違いなくPCIe3.0で動作しているようです。が、今回使用したSSDの性能を使いきれているわけではないようです。

microSDと比べた場合、SSDは速度も耐久性も大幅に優れているというアドバンテージがあります。大容量化も比較的簡単に行えますので、導入コストとの兼ね合いで検討してみるのが良いかと思います。

補遺

PCIe3.0を有効にしているとなぜか起動中に再起動がかかったりGUIがうまく起動しなかったりと、動作が不安定になる場面が多く見受けられました。原因については今回調査しきれませんでしたが、動作の安定性を求める場合は素直にPCIe2.0の状態で使用するのが良さそうです。

ネットワーク速度測定

ストレージの次はネットワークの通信速度を検証します。Raspberry Pi 5はオンボードの状態で1ギガビットイーサネットとWi-Fi 5(802.11ac 2.4/5GHz)に対応しています。

以前紹介したシングルボードコンピュータであるROCK5シリーズ ではWiFiモジュールは標準で搭載されておらず、拡張カードを搭載する必要がありました。これに対してRaspberry Pi 5では基板上にRFチップとパターンタイプのアンテナが実装されています。

ネットワーク速度の測定にはiperf3を使用し、同一LAN内にあるサーバーとの間の速度を測定しています。

有線接続(RJ45)の状態であればアップロード/ダウンロードともに1Gbpsの帯域はほぼ使い切れているようです。ただそれとは対象的に、無線接続は思ったほど速度が出ませんでした。

Raspberry Pi 5 に搭載されていうるWiFiチップは BCM4345 で、5GHz帯を用いたかなり高速な通信に対応しているはずです。しかしアクセスポイント側の接続ステータスを確認した所、2.4GHzの11nでしかリンクアップしていませんでした。

流石にこの状態では速度に不満の残る結果ですので色々と対応策を調査した所、どうやらWiFiのロケール設定の問題だったようで、raspi-config > Localisation Options > WLAN Country の項目でしっかりと日本を選択することで5GHzで接続することができるようになりました。

5GHzのWiFiを使用した状態で改めて速度(帯域)速度を測定した所、約4倍の200Mbpsほど確認できました。理論値とくらべるとだいぶ遅い気はするものの、実用的な速度のWiFiがオンボードの状態で使える事がわかりました。

オーバークロック

CPUのオーバークロックについても検証しました。Raspberry Piシリーズでは/boot/firmware/config.txtの内容を編集することでCPUの動作周波数を変更することが出来ます。今回は性能をさらに向上させるオーバークロック(OC)の設定を書き込みました。

どの程度までクロックが上げられるか限界を探った所、おおよそ周波数2.8GHz, 電圧1.4Vが限界でした。電源や放熱にも左右されるかとは思いますが、だいたい2.9~3GHzまで上げると動作が不安定になり、突然OSがクラッシュするようになります。

オーバークロックした状態でもあらためてunixBenchを回した所、だいたい標準の状態と比べて10%程度の向上が見られました。

今回は純正冷却ファンを取り付けたうえで、横から別の12cmファンで風を送っている状態で動作させています。さらに冷却効率を上げることができれば、3GHzくらいまでは安定したが出来そうな雰囲気です。

GPIOの仕様変更について

さて、Raspberry Pi 5発売直後から一部の界隈で話題になっていたのがGPIO周りの仕様変更です。

これまでRaspberry PiシリーズではGPIOの駆動についてはSoC(CPU)が直接制御を行っていた所、今回のRaspberry Pi 4では新たにRP1という専用コントローラが1つ挟まるようになりました。

このRP1というチップはGPIOの制御の他にもUSBや有線LANの通信も担当していて、一般的なPCでいうところのサウスブリッジのような役割を果たしています。マザーボードなんかでいう「チップセット」に当たります。

SoCとRP1の間の接続はPCIeのバス接続が用いられています。GPIOのコントロールなどが全て一度このバスを経由した状態で行われることになりますので、GPIOの応答速度が遅くなるのではないかという声があります。

ここまで問題視されることになった要因の1つに、RP1のデータシートにあるレイテンシに関する記述があります。

The PCIe link between RP1 and the host processor inserts an unavoidable amount of latency, typically 1μs at the design link width and speed.

RP1 Peripherals https://datasheets.raspberrypi.com/rp1/rp1-peripherals.pdf

要するにプロセッサとRP1間のPCIeリンクには回避不能な1μsの遅延が発生するとのことです。これが実際どの程度GPIOの動作に影響を与えるのかについて検証を行いました。

検証用プログラムについて

検証用プログラムの作成にはC言語を使用しました。計測で使用したプログラムのソースコードはGithubにて公開しておりますので、ぜひご確認ください。

C言語は人間が読める形式のプログラムをコンパイラによって実行可能な形式に事前に変換してから実行されるタイプのプログラミング言語です。Pythonのようにインタプリタがその都度ソースコードを解釈して実行していくタイプの言語と比べて、C言語はよりハードウェアに近いレイヤで動作することができます。

GPIO出力書き換え速度測定

まずGPIO出力の書き換え速度を計測してみます。

先程の検証用プログラムでは、GPIO出力を可能な限り高速にHigh/Low切替を繰り返しています。GPIOにオシロスコープを接続詞て出力波形を見てみると動作の速度を確認できます。

GPIOに現れた波形は約1.25MHzの矩形波の波形となっていました。デジタルの2値制御なので矩形波になります。

この波形1周期の間にはGPIO出力をHigh/Lowへ切り替えるため2回のGPIO制御が行われていることになります。したがって、GPIOの書き換え速度は

$$1.25[MHz] \times 2 = 2.5[MHz]$$

となります

ちなみに波形をオシロスコープ上に表示してしばらく観察していたところ、周期に若干の振れ幅(というかグリッチ)があることがわかりました。Raspberry Pi上で動くOSが原因かと思われるのですが、これについては後ほど詳しく解説します。

他のデバイスと比較

同様の実験をRaspberry Pi 4とRaspberry Pi Picoで行ったところ、次のような結果が得られました。

Raspberry Pi 4より5の方が速く、また、それらよりもRaspberry Pi Picoは圧倒的に高速でした。遅くなるどころか早くなってますね

GPIO応答速度測定

次に、GPIOが入力を受けてから出力にレスポンスを返すまでの応答時間を計測します。

こちらは入力用のGPIOの状態を常に監視しておいて、ボタンが押される(入力が変化する)と即座に出力のGPIOをスイッチングさせるというプログラムを使用しています。オシロスコープで入力と出力の波形を同時に観測することで応答速度とします。

オシロスコープ上の2つの波形が立ち上がる時間差がRaspberry Pi内部で処理に要していた時間です。

この測定についてもRaspberry Pi 4、Raspberry Pi Picoでも計測を行います。

ちなみにRaspberry Pi 4, 5のGPIO入力が内蔵プルダウンされているのに対して、Pi Picoは内蔵プルアップ(かプルアップ無し)となっています。このため、ボタン入力を表す2chの水色の線がRaspberry Piと比べて反転しています。

結果はこのようになりました。今回の実験でも結果に若干の振れ幅があったため、複数回計測して平均を取りました。

書き換え速度同様にRaspberry Pi 4よりRaspberry Pi 5の方が速く、それらよりもRaspberry Pi Picoがずっと高速であるという結果でした。なぜこのような結果になったのか、次の章で解説していきます。

測定結果まとめと解説

応答速度に関する実験で分かったことが次の3つです。

  • Raspberry Pi 4よりRaspberry Pi 5の方が若干速い
  • Raspberry Pi 4,5よりPicoの方が圧倒的に速い
  • Raspberry Piは応答速度が時と場合によってまちまち

CPUの処理能力では圧倒的に劣るはずのマイコンが、なぜRaspberry Pi 4, 5よりも高速に動作できていたのでしょうか。その理由はソフトウェア構造の違いにあります。

コンピュータの仕組みとして、記憶領域にあるプログラムの命令を一つ一つプロセッサに読み込ませることで動作を行います。

マイコンの場合、電源が投入されると同時にブートローダがRAMにプログラムを展開して動作します。詳細な解説は割愛しますが、つまるところマイコンはプログラムがハードウェアリソースに直接触れられるので応答速度が速くなる、という特徴をもっています。

その一方でRaspberry Piをはじめとする私達が通常触れるような高機能なコンピュータにおいては、ハードウェアの上にまずオペレーティングシステム(OS)が存在しており、このOSが多数のプロセスを管理することで動作しています。

OS上で動作するプログラムはIO(GPIO)に直接触れることはできません。これはIOがメモリ領域などと同じくOSが管理する共有資源であり、OSに制御を仲介してもらう必要があるからです。

これをシステムコールと呼び、複数のプロセスが同一のIOに同時に触れないようにする排他制御を含めたハードウェアリソースの管理すべてをOSが担っています。

プログラムがGPIOの出力を切り替えたり現在の状態を取得するには必ずこのシステムコールが挟まるため、遅延が発生していたと考えられます。

また、OSはプロセッサの数よりも多いプロセスを同時に動いているように見せるため、スケジューリングと呼ばれる処理を行っています。これは、様々な条件を考慮したアルゴリズムに従ってプロセスに対してプロセッサを使わせる時間を割り振るものです。

では次にRaspberry Pi 5で「GPIOが遅くなった」との声に反して5の方が速かったのはなぜか。これについて一番に考えられる理由としてCPUの処理速度の向上があげられます。

CPUの性能が上がれば、システムコール中の特権モードによる処理も、スケジューリングにより本来の処理の間に挟まる処理も、高速に処理することができます。今回検証した結果からすると、Raspberry Piにおける「応答速度」は「IOコントローラによる遅延よりもOSの処理による遅延が支配的」であるといえるでしょう。

余談

ちなみにOSの載ったコンピュータで応答速度に一定の限界が出てしまうのは仕方のないことです。ただ遅いとは言っても一般的なプログラミングや電子工作においては十分すぎるほどの速度があるため、あまり問題視されることはありません。

一応Raspberry Piにおいては、マイコンと同じようにOSを介さず直接プログラムを実行するベアメタルプログラミングがされることもあるようなので、そういった分野に手を出して初めてGPIOの遅延問題を気にする程度かと思います。

もしこれ以上の応答速度がどうしても必要な場合は、マイコンやFPGAなどの選択肢を検討したほうがよい可と思います。もし組み込みシステムに詳しい方なら、プロセスの厳格なスケジューリング機能を持ったリアルタイムOSを使うというのも選択肢の一つです。

割り込み処理と条件分岐の違いについて

今回の応答速度計測の実験にあわせて、割り込みを使用した場合と条件分岐を使用した場合の応答速度の違いについてもテストしていましたので、付録として結果をまとめておきます。

割り込み処理について

実験で使用した計測プログラムは、whileループ内でGPIOの入力状態によって条件分岐して、GPIOの出力のHigh/Lowを切り替えるプログラムでした。これは定期的に入力状態を監視するポーリングと呼ばれる処理方式です。

例えば、High/Lowの2値を取る入力を監視して、変化があった際にイベントを起こすプログラムを書くとします。しかしポーリングでの監視この処理では監視周期の都合で入力を見逃したり、監視処理にプロセッサのリソースを余分に消費してしまうという欠点が存在します。

これに対してマイコンであるPi Picoではハードウェア割り込みと呼ばれる処理が可能です。

割り込みとはIO端子への入力など割り込みのトリガとなる入力があった場合、その時点のプロセッサの状態をいったん保存したうえでサブルーチンの動作を開始する処理のことです。プログラム中のいかなる処理の途中でも確実かつ高速に入力を拾い、それを中断してサブルーチンの実行に移ることができます。

実験結果

というわけでRaspberry Pi Pioにおいて割り込み処理を用いると応答速度はどう変わるのか測定してみました。

で、結果としては条件分岐よりも応答が遅いという結果になってしまいました。

しかしここで注目すべきは応答時間が常にほぼ一定であるという点です。標準偏差/平均で求められる変動係数が0.001と、入力変化に対する出力の応答速度にブレがないことになります。

割り込み処理を用いた場合、プログラム中の実行位置を表すプログラムカウンタがどこを指していたとしても一度割り込みがかかればサブルーチンが動作するまでの時間は常に一定です。これに対してポーリング処理では、入力を判定するためにはプログラムがその位置まで進む必要があり、時間が一定とならないわけです。

今回の実験で条件分岐の方が高速だったのは、プログラムが単純であるためループ内に存在する命令数とそれで消費するクロック数が割り込み処理よりも少なかったことが要因であると考えられます。しかしプログラムが大規模になれば今度は割り込み処理の応答時間を上回る待機時間が生まれます。

このため、条件分岐と割り込み処理を適切に使い分ける必要があります。

今回のまとめ

というわけで今回は新しく発売されたRaspberry Pi 5のレビューをしてきました。

RP1という新しいチップセットが搭載されてGPIOの制御が遅くなったという噂についても、検証を重ねた結果特に問題になることはないかなという印象でした。

Raspberry Pi 5では前世代機よりもさらに処理性能が上がったおかげで、コンピュータとしてはかなら我々が一般的に使うPCに近づいてきた印象があります。消費電力も排熱も増加しているため組み込み用途には使いづらいという声もあるかと思いますが、そういった場合はRaspberry Pi Zero Wという選択肢もあります。

また、昨今では単体でWiFiに接続できるマイコンや、Intel N100などのミニPCなども登場しています。用途やコストを考慮してこれらの選択肢を使い分けていく事が肝心です。

Raspberry Piにある利点としては

  • 本体の入手性の高さ
  • サードパーティ製部品が潤沢にあること
  • ユーザの多さにより蓄積された開発ノウハウ

があげられるかと思います。

GPIOを用いた電子工作はもちろん、小さなLinuxのパソコンとして1つ持っておくと便利なのがSBCですので、興味が湧いた方は是非一度触ってみて下さい。

動画あります

また、今回のRaspberry Pi 5レビューについては既にYouTubeで動画も公開しています。イチケンが実際にセットアップしている様子などもまとめていますので、まだ見ていないよという方は是非こちらもご覧いただけると幸いです。

それでは今回も最後までお付き合い頂きありがとうございました。


【追記】
2024/10現在 記事の内容をブラッシュアップしました

SNSでシェア

コメント

コメントする

CAPTCHA


目次