ARM Cortex-A57 [プロセッサ]
ARM Cortex-A57はNVIDIAのJetson Nanoへの搭載が話題となっていますが、概略の構成はどのようになっているのでしょうか。
ARM社は低消費電力で低価格のプロセッサで世界トップのプロセッサIPベンダーです。スマホをはじめとするモバイル機器でARM社のプロセッサのお世話にならないほうが難しい状況です。
そのようなモバイル用途で覇者となったARMプロセッサにも唯一弱点がありました。モバイル向けに強い分、ハードウェアリソースを多く使う64-bitプロセッサがなく、長い間32-bitプロセッサだけで戦ってきたという点です。
64-bitプロセッサでは、最低限64-bit演算処理と64-bitアドレス空間のサポートが必要ですが、そのためのハードウェアリソースがかなり必要です。
さらに、一旦プロセッサアーキテクチャを決めると64-bitか32-bitかの選択を含め既存ソフトウェアや開発環境ツールを一新する必要があり、なかなか64-bit対応できなかったであろうと思います。
そんな中でついに64-bit化に対応したプロセッサのひとつがCortex-A57となります。
A57は64-bit演算をサポートし、物理アドレス空間は44-bitをサポートしています。このクラスのCPUは仮想空間をサポートしていますので、仮想空間さえ64--bitをサポートしていれば、必ずしも物理空間は64-bitなくても問題はありません。
CPU本体のパイプライン段数は15段で結構長めです。分岐命令予測や一次キャッシュのミスなどでパイプライン動作が乱れた場合の性能的なペナルティがかなり大きくなりますので、その対策が重要となります。
並列処理性能については3命令同時のout-of-order実行が可能とのことで、投機実行機能が充実しており、分岐予測機構もかなり実装されていて、パイプライン動作の乱れを抑止しようとしています。
具体的にはブランチ・ターゲット・バッファを持つことで分岐先のアドレスへの遷移が高速に行えるのと、ブランチ・ヒストリー・バッファを持つことで分岐の予測ができる機構を持っています。
ただし、これはどのスーパースカラで並列処理するプロセッサでもそうなのですが、分岐予測が当たる確率はかなりループを回す演算でないとなかなか思うように上がらないので、シングルプロセッサが同じ動作周波数で動くとした場合に比べれば性能は落ちてしまいます。
それでも他のプロセッサアーキテクチャに負けないレベルの性能改善策を作り込んでいるということだけは間違いないでしょう。
動作周波数はNanoに実装したもので1.43GHzのようですがここまでいくと余程ピーク時の演算性能を求められない限りノートパソコンにも使えるようなレベルの性能です。相当高性能なCPUとして位置付けられるプロセッサであることは間違いないでしょう。
より詳細の情報は適宜更新していきます。
注:
ARM Cortex-A57はARM社の登録商標。
NVIDIA Jetson NanoはNVIDIA社の登録商標。
コメント 0