中野島ロボット

小さなロボットの自作記事を書いています。

週間中ロボ116 RPi4のUSB3.0について

はじめに
ラズベリーパイとは小さなワンボードコンピュータですが、Model 4Bになってすごい演算パワーになっています。PCが無くてもこれ一つでロボットの設計から3Dプリンタでの機体の印刷、プログラム開発すべてが可能になるくらいの性能があります。

RaspberryPi  Model4BのUSB3.0について
RPi4にはふたつのUSB3.0ポート(真ん中の青い2つ)を搭載しています。RPi4で一番高速な外部インタフェースはこのUSB3.0で、最大で5GBpsの転送能力があり、これは単位を変えると500MB/Sの最大転送能力で、現時点で40MB/SのmicroSDカードの10倍以上の性能があります。

f:id:nakarobo:20201103112426j:plain

とある記事によるとここにUSB3.0カードリーダをつなげたり、SSDをつなげて起動するとRPi4の起動が早くなりサクサク動くと言われていますが、RaspberryPiの標準はmicroSDカードにOSをインストールすることを想定しています。今回はこの噂を検証してみます。

 

USB3.0接続のカードリーダでmicroSDカードの高速性能を生かせるか
無駄に高速なmicroSDカードを買ってしまったのですが、これをUSB3.0のカードリーダーに挿して使えば、さらなる高速化ができるかもしれません。RPi4の本体に挿して使っていたOSインストール済みのmicroSDカードを、USBカードリーダーに挿して電源を投入するとUSB3.0経由でOSを起動させることができます。これでRaspberry Pi Diagnostics を起動して確認してみます。

Raspberry Pi Diagnostics - version (unknown)
Sun Nov 1 09:25:34 2020

Test : SD Card Speed Test
Run 1
prepare-file;0;0;72017;140
seq-write;0;0;78019;152
rand-4k-write;0;0;2582;645
rand-4k-read;9255;2313;0;0
Sequential write speed 78019 KB/sec (target 10000) - PASS
Random write speed 645 IOPS (target 500) - PASS
Random read speed 2313 IOPS (target 1500) - PASS
Test PASS

おー連続書き込みの速度が、確かにカタログ値の80MB/s近くまで高速化しています。microSDカードは SanDisk ExtreamPro 64GBの結果ですが、このカードの性能が出ているといえます。 

 

ではなぜ?
RPi4のOSはmicroSDカードスロットが標準なんでしょうか。Raspberry Pi Diagnostics のスコアをよく見ると、ランダム読み込みとランダム書き込みは逆に、microSDカードスロットの時より遅くなってしまっています。 

www.nakarobo.com

大きなファイルの書き込みでは、連続書き込みが速い方が有利ですが、体感的に効くのはランダムの書込み性能です。UNIX Benchでの数値も、殆ど変わらず、microSDカードスロットの方が若干速いくらいでした。
消費電力は今この記事を書いている時点で5Wなので、USB3.0起動の方が1~2W多く電力を消費していることになります。また、現時点ではUSB3.0のコントローラーチップの発熱がすごく高くなってしまっています。microSDカード自体も結構な高温になっており、50度を超えています。

ちょっと待て!
USB3.0の発熱を改善したとリリースノートに書かれていましたが、全然改善されていないように思えます。(前はどんなにすごかったのか・・・)
f:id:nakarobo:20201103092228j:plain
赤外線カメラで見ると左端がSDカードリーダーです。右端がCPUです。このくらい熱くなると半導体の寿命が気になります。表面温度的には50度を超えているとなると、内部は相当高くなっているはずで、そうなると高耐久型のmicroSDカードが必要となってしまいそうです。”RPi4には高耐久型のmicroSDカードが必要”とかの記事は、USB接続なのかもしれません。
さらにUSBカードリーダーも長時間連続で使用する想定で作られていないと思うので、故障が心配になってきます。microSDカードの寿命のことを考えたら、USB3.0接続にしないほうが良いと思います。


しかし
カードリーダーの発熱は、カードリーダーの問題かもしれません。また発熱も消費電力も将来的には改善されるかもしれません。 USB3.0の発熱問題は現時点では問題ありですが、将来的には改善される可能性があり希望はあります。
SSDからの起動も試そうとしているのですが、一度成功したのですが、一回クラッシュしたらOSが起動しなくなってしましました。安定して使うためにはもう少し時間が必要な感じです。

 

まとめ
たしかに、USB3.0からOSを起動すると、連続書き込みは若干高速に動作しますが、消費電力も増え、温度も上がり、なによりコンパクトではなくなってしまうので、発熱問題が解決するまでは、microSDカードをRPi4本体のスロットに挿して使用するのが正解だと思います。
それに、OSを増えたメインメモリ上で動かして、動作を高速化する手法もあります。これはまた今度。

 

購入品情報
使用したカードリーダーです。これは黒ですがカーボン柄のすごく小さい色のものを購入しました。 

Digio2 USB3.0 カードリーダーライター microSD ブラック 43826

Digio2 USB3.0 カードリーダーライター microSD ブラック 43826

  • 発売日: 2017/08/03
  • メディア: Personal Computers
 

使用中ものすごく熱くなります。使用しているmicroSDカードはSanDiskのExtreamPro 64GBですが、表面温度を計ると50℃を超えていました。普通にOSの起動ドライブとして使っていると、一時的にアクセス不能になりました。冷やすと元に戻るので、これかmicroSDカードのどちらかが熱暴走しているものと思います。転送速度はカードの性能まできっちり出ていますが、RPi4に常時接続してOSの起動ドライブとして使うことは出来ないと思います。

 

おすすめのmicroSDカードはこれです。
体感できていませんが、SanDiskよりランダムアクセスが速いので、少し速い気がします。