目次
Xilinx Zynq UltraScale+ MPSoCの概要
Xilinx Zynq UltraScale+ MPSoCは、これまでのZynqよりPS(SoC部分)が格段にスケール アップしています。ZynqはArmv7アーキテクチャーのArm Cortex-A9シングルまたはデュアルコアだったのに対して、MPSoCはvArm8アーキテクチャーのArm Cortex-A53デュアルまたはクアッドコアでさらにリアルタイム処理用のArm Cortex-R5デュアルコアやGPUも内蔵されています。
Armv8アーキテクチャーは64bit命令セット アーキテクチャー(AArch64)だけでなくArmv7と互換性のある32bit命令セット アーキテクチャー(AArch32)もサポートするので既存のソフト資産も安心して活用できます。また、ArmのSIMDアーキテクチャーであるNEONは、Armv7ではサポートされなかった64bit Integerをサポートし、AArch64では64bit Floating Pointもサポートするため、より高い処理能力があります。
MPSoCについて、もっと知りたい人はXilinxのサイトで読んでね。
All Programmable ヘテロジニアス MPSoC
PetaLinuxのツールインストール
今回は、MPSoCのArm Cortex-A53上でLinuxを動かしてみましょう!まずは、PetaLinuxのツールをインストールします。
今回使用したツールは、下記からダウンロードできます。
今回ダウンロードしたのは下記の2つです。※ダウンロードには、Xilinxのアカウントが必要です。
petalinux-v2017.4-final-installer.run
xilinx-zcu102-v2017.4-final.bsp
ダウンロードが完了したら、インストーラを実行します。※ ~/tools/petalinuxは、インストール パスです。任意に変更してください。
$ chmod 755 petalinux-v2017.4-final-installer.run $ ./petalinux-v2017.4-final-installer.run ~/tools/petalinux
ホストOSに必要なパッケージがインストールされていない場合、メッセージが表示されるので、適宜インストールしてください。私の環境(Ubuntu 17.10 64bit)の場合、下記をインストールしました。
$ sudo apt install build-essential gawk xvfb chrpath socat xterm autoconf libtool gawk texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 tftpd
PetaLinuxのビルド〜SDカードからのBoot
インストールが完了したら、ビルドしてみましょう。
まずは、ツールの環境変数を設定します。
$ source ~/tools/petalinux/settings.sh
次に、プロジェクトを作成します。
$ petalinux-create -t project -s xilinx-zcu102-v2017.4-final.bsp
xilinx-zcu102-v2017.4というディレクトリーが作成されるので、移動します。
$ cd xilinx-zcu102-v2017.4
さあビルドしてみましょう!※初回のビルドは環境にもよりますが、20分程度掛かると思います。
$ petalinux-build
ビルドが完了したら、下記のコマンドでブート イメージを生成します。
$ petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/download.bit --pmufw images/linux/pmufw.elf --u-boot
BOOT.BINとimages/linux/image.ubをSDカードの最初のFATパーティションに格納します。
$ cp -a BOOT.BIN SDCARD_1ST_FATPARTITION $ cp -a images/linux/image.ub SDCARD_1ST_FATPARTITION
SDカードからのBoot
SDカードをボードに挿して、いよいよブートしてみましょう!
login: root password: root
でログインできます。
AArchで64bitと32bitの性能をベンチマークしてみる
今回使用したUnixBenchは下記から入手できます。
今回使用したツールは、下記からダウンロードできます。
Arm向けにコンパイルするには、MakefileのCC=gccを下記の通り変更してください。
AArch64 CC=aarch64-linux-gnu-gcc
AArch32 CC=arm-linux-gnueabihf-gcc
今回使用したDhrystone2は、pgms/dhry2です。AArch64では10秒間で約65Mループ、AArch32では約55Mループでした。AArch64の性能の高さが実感できましたね!
UnixBenchには他にも様々なベンチマークがあるので、遊んでみてください!
Xilinx社製 Zynq® UltraScale+™ MPSoC搭載ボード
ザイリンクス社のZynq UltraScale+ MPSoC デバイスは、Quad-core Arm® Cortex®-A53とDual-core Arm Cortex-R5、最大1143KロジックセルのFPGAを搭載した、All Programmable SoCデバイスです。CPUコアの性能はもちろんのこと、DDR4対応やセキュリティのサポート、GPUにはDual-coreのMali™-400、USB、GbE、PCIe Gen2x4、DisplayPortをも搭載しています。開発ツールは、Vivado® Design Suiteをはじめ、SDSoCによるプログラマブルデバイスならではのシステム開発環境が利用できます。今回の講座では、Zynq UltraScale+を搭載した「ZCU102/ZCU104評価キット」を使用します。
最新情報をメーカーサイトで見る
DTSインサイト社製 adviceLUNA Ⅱ
情報家電などの組込み製品には、高機能であることや高い処理性能が求められています。LinuxやAndroidなどのプラットフォームには、マルチコアCPUが搭載されるようになり、システムは複雑かつ大規模化し、ソフトウェアのデバッグは困難を増しています。adviceLUNA Ⅱは、従来デバッガのデバッグ機能に加え、Linuxデバッグやマルチコアデバッグに対応した高度なデバッグ機能、トレース機能、測定機能、解析機能を提供することで、MMUの仮想記憶環境やマルチコアCPUで並行動作するような複雑なソフトウェアのデバッグをサポートします。
最新情報をメーカーサイトで見る
組み込みLinux導入/開発支援サービス
組込みLinuxによりお客様の装置開発に新たな価値を提供します。
富士通コンピュータテクノロジーズ
こちらも是非
“もっと見る” 組み込みLinux|MPSoC編
PMUを使いこなして、より安全なシステム設計にチャレンジ!
MUを使ってMPSoCの温度と電力を監視する 今回は、MPSoCのPMUを活用してみましょう。これまではMPSoCのArm Cortex-A53とArm Cortex-R5を活用してきましたが、今回はもう一つのプロセッサであるであるPMUを活用してみましょう。
adviceLUNA Ⅱを使ってOpenAMPのコア間通信をデバッグしよう!
今回は、Arm Cortex-A53上のLinuxとArm Cortex-R5上のFreeRTOSをデバッグしてみたいと思います。デバッガとしては、Armを使ったシステム開発にて根強い人気を誇る「adviceLUNA Ⅱ」を選択しています。
Zynqに搭載されたPS部を活用し、仮想化ソフトウェア「Xen」を実行してみよう!
今回は、MPSoCのPS部を活用して、Linuxの仮想化の実装であるXenを動かしてみましょう。MPSoCは、Arm Cortex-A53クアッド コアで複数のOSを動作させられる高いパフォーマンスなので、仮想マシン(VM)を動かすことができます。