海上忍のラズパイ・オーディオ通信(50)
ラズパイオーディオ、システムコアの “64bit化” で音は変わるのか?
■ラズパイ、実は「32bit」でした
Windows、macOS、iOSにAndroid OS……パソコン用にせよスマートフォン用にせよ、すでにコンシューマー向けOSは64bitの時代。しかし、我らがラズパイはそうではない。
ここでいう64bit OSとは、OSを構成するカーネル/ライブラリと主要なプログラムが64bit CPUのネイティブコード(64bitCPU用命令セットを利用した実行ファイル)で構成されること。これらが64bit化されて初めて64bitアプリケーションを実行できるため、真の64bit CPUパワーを欲するのであれば64bit OSは必須だ。
Raspberry Pi 3に搭載されているSoC「BCM2837」はARMv8という64bitアーキテクチャを採用しているため、64bit OSが動作可能だが、現状64bit OSはほとんど普及していない。それは、Raspberry Pi財団の公式Linuxディストリビューション「Raspbian」が64bit化されていないからだ。ワンボードオーディオコンソーシアムで開発中の「1bc」も、Raspbian上にMPDなどのソフトウェアを追加する形にしているため、やはり32bit OSということになる。
実は、Raspberry Piではいまだに「32bit OS」が主流だ。初代Raspberry Piに搭載されているSoC「BCM2835」はARMv6、Raspberry Pi 2(v1.2を除く)に搭載されているCortex-A7コア4基搭載のSoC「BCM2836」はARMv7と、いずれも32bitアーキテクチャ。Raspberry Pi 3以降、64bitアーキテクチャのARMv8からなる「BCM2837」を採用しているが、Raspberry Pi公式のLinuxディストリビューション「Raspbian」は32bit OSのままなのだ。
というのも、BCM2837のCPUコア「Cortex-A53」は64bit モードに加えて32bit モード(従来のARMv7アーキテクチャ)が用意されており、どちらでも動作する。64bit CPUを高速な32bit CPUとしても利用できる設計なのだ。
発売年の近さ(Raspberry Pi 2の発売は2015年2月)からして、少なくともこの先数年は32bit CPUサポートを続けなければならないRaspberry Pi財団としては、1つのOSで32bit機と64bit機の両方をサポートできるわけで、合理的な判断といえるだろう。
しかし、多くのソフトウェアは64bit化しており、64bit OSで動作させた方がパフォーマンスは向上する。オーディオ再生系ソフトの場合、デコードなどデータの処理自体は64bit OSか32bit OSかに影響はされないが(ビットパーフェクトなら当然そういうことになる)、CPUにかかる負荷やプリエンプション遅延(タスク切り替えにまつわる遅延)といった要素は変化するため、そこが音質に影響を与える可能性はある。
OSを64bit化すればいいだろう、ソースコード公開が前提のLinuxだからなんとかなるはず、という考えも浮かぶが、これがなかなか難しい。カーネルやライブラリなどOSの構成要素を32bitと64bitで分けねばならず、それを収録した配布物(イメージファイル)も2種類用意しなければならない。
アップデート用パッケージ(apt-getでダウンロードするもの)が2種類必要になるだけでなく、不具合対応やセキュリティ対応が別々に発生する可能性があるため、メンテナンスの労力は確実に増えてしまう。そこに再生ソフトやデコーダーの64bit化も絡んでくると大変なことに…。さて、どうするか。
Windows、macOS、iOSにAndroid OS……パソコン用にせよスマートフォン用にせよ、すでにコンシューマー向けOSは64bitの時代。しかし、我らがラズパイはそうではない。
ここでいう64bit OSとは、OSを構成するカーネル/ライブラリと主要なプログラムが64bit CPUのネイティブコード(64bitCPU用命令セットを利用した実行ファイル)で構成されること。これらが64bit化されて初めて64bitアプリケーションを実行できるため、真の64bit CPUパワーを欲するのであれば64bit OSは必須だ。
Raspberry Pi 3に搭載されているSoC「BCM2837」はARMv8という64bitアーキテクチャを採用しているため、64bit OSが動作可能だが、現状64bit OSはほとんど普及していない。それは、Raspberry Pi財団の公式Linuxディストリビューション「Raspbian」が64bit化されていないからだ。ワンボードオーディオコンソーシアムで開発中の「1bc」も、Raspbian上にMPDなどのソフトウェアを追加する形にしているため、やはり32bit OSということになる。
実は、Raspberry Piではいまだに「32bit OS」が主流だ。初代Raspberry Piに搭載されているSoC「BCM2835」はARMv6、Raspberry Pi 2(v1.2を除く)に搭載されているCortex-A7コア4基搭載のSoC「BCM2836」はARMv7と、いずれも32bitアーキテクチャ。Raspberry Pi 3以降、64bitアーキテクチャのARMv8からなる「BCM2837」を採用しているが、Raspberry Pi公式のLinuxディストリビューション「Raspbian」は32bit OSのままなのだ。
というのも、BCM2837のCPUコア「Cortex-A53」は64bit モードに加えて32bit モード(従来のARMv7アーキテクチャ)が用意されており、どちらでも動作する。64bit CPUを高速な32bit CPUとしても利用できる設計なのだ。
発売年の近さ(Raspberry Pi 2の発売は2015年2月)からして、少なくともこの先数年は32bit CPUサポートを続けなければならないRaspberry Pi財団としては、1つのOSで32bit機と64bit機の両方をサポートできるわけで、合理的な判断といえるだろう。
しかし、多くのソフトウェアは64bit化しており、64bit OSで動作させた方がパフォーマンスは向上する。オーディオ再生系ソフトの場合、デコードなどデータの処理自体は64bit OSか32bit OSかに影響はされないが(ビットパーフェクトなら当然そういうことになる)、CPUにかかる負荷やプリエンプション遅延(タスク切り替えにまつわる遅延)といった要素は変化するため、そこが音質に影響を与える可能性はある。
OSを64bit化すればいいだろう、ソースコード公開が前提のLinuxだからなんとかなるはず、という考えも浮かぶが、これがなかなか難しい。カーネルやライブラリなどOSの構成要素を32bitと64bitで分けねばならず、それを収録した配布物(イメージファイル)も2種類用意しなければならない。
アップデート用パッケージ(apt-getでダウンロードするもの)が2種類必要になるだけでなく、不具合対応やセキュリティ対応が別々に発生する可能性があるため、メンテナンスの労力は確実に増えてしまう。そこに再生ソフトやデコーダーの64bit化も絡んでくると大変なことに…。さて、どうするか。
次ページ64bit CPU向けに「カーネルの再構築」。果たして音は変化するのか?