2012年のFTFにおける大きな発表の1つが「Layerscape Architecture」である。基調講演レポートでもちょっと触れたが、同社はもともと通信プロセッサの分野で非常に大きなマーケットシェアを持っており、ここに向けてPower ArchitectureコアベースのQorIQという製品ラインナップを提供している。言ってみればPower Architectureにとって通信プロセッサの分野はある種「聖域」だったわけだが、ここにARMのCortex-A7/A15コアを投入されると発表がなされたことで、「ついに」的な感想を抱いた人はかなり多かったようだ。ただLayerscapeは、単にARMコアがどうこうという以上の、もっと劇的なアーキテクチャの変更を目指したものだが、ARMコアの採用を同時に発表したことでアーキテクチャそのものの話が見えにくくなっている。今回FTFにおいて、Nikolay Guenov氏(Photo01)にこのあたりの話を詳しく伺うことができたので、とりまとめてご紹介したい。
LayerscapeはSDNへの対応をメインとしたもの
Layerscapeというまったく新しいアーキテクチャを導入した理由は、「次の10年のネットワークに対応するため」(Guenov氏)であるとする(Photo02)。次の10年、というのは多くのユーザーがスマートフォンやスマートデバイスを多用する様になり、トラフィックが大幅に増えることが予想される一方で、ネットワーク機器の構成がさらに複雑化することが予想されるということである。こうしたトレンドに向けて、過去10カ月ほどの間にネットワーク業界で急速に普及が始まっているのがSDN(Software Defined Networking)への対応である。SDNは「ネットワークの仮想化」と説明されることが多いが、既存のネットワークの上に、論理的に重ねる形で作る仮想ネットワークである。
これが便利なのは、特に複数のベンダのネットワーク機器が入り乱れる形でネットワークが構成されているケースである。従来だとこうしたケースでは、ベンダごとに異なる管理ツールが用意されており、これらを組み合わせて機器を1つずつ設定してゆくといった作業が必要とされた。これに対してSDNでは、全体をカバーするソフトウェアが、すべての機器を集中的に管理するようになる。このSDNは仮想ネットワークに対する操作となるため、物理的なネットワーク機器の構成は関係なくなる。
このSDNはいわばコンセプトというかポリシーであるが、これを実現するための解の1つがOpenFlowである。OpenFlowは、いわばアプリケーションとハードウェアの間に入るミドルウェアであり、アプリケーションはOpenFlowに沿った形でネットワーク機器へのリクエストを出し、やはりOpenFlowに沿った形でこれを処理する形になる。OpenFlowの大きな特徴はの1つは、経路制御を行う部分(Control-Plane)と実際にデータの転送を行う部分(Data-Plane)が分離されていることで、これは従来のネットワーク機器とはやや異なる部分である。
SDNを実現するためには必ずしもOpenFlowが必須という訳ではなく、OpenFlow以外の実装を行ってSDNに対応とするベンダもある(特にネットワークスイッチのベンダではNetwork FablicをベースにSDNの実装を行っている)が、FreescaleとしてはOpenFlowを重視しているとの事。ただ現時点のQorIQファミリはまだSDNというかOpenFlowには未対応であり、これに対応することがLayerscapeの大きな目的ということになる。
これはLayerscapeの特徴(Photo03)からも明白である。Software-Aware Architecture(ソフトウェアに対応したアーキテクチャ)というタイトルからも判る通り、単にサポートソフトウェアを充実するというだけではなく、もっと高度なソフトウェア対応がなされている。例えばStandard Programmingがその一例である。Layerscapeではハードウェアは3つのLayerに分離されており(Photo04)、それぞれGPPL(General-Purpose Processing Layer)、APPL(Accelerated Packet Processing Layer)、EPIL(Express Packet I/O Layer)となっている。
GPPLは文字通り汎用プロセッシングのLayerで、OpenFlowで言うならばControl-Planeの制御である。一方EPILは高速な通信ハードウェアを固めた部分で、こちらはOpenFlowで言えばData-Planeに相当する。判断が難しいのはAPPLだが、処理的にはData-Planeの比重が高いと言ってよいだろう。
さて、各々のLayerのコンポーネントに対する指示は、ソフトウェアベースで行うことになるが、この際のプログラミングは標準的なC/C++で行えるというのが特徴であるとGuenov氏は強調した。それも難しいプログラミングではなく、言ってみれば各コンポーネントもしくはLayerに対するルールを、普通のC/C++で記述するという形になる。特徴的なのは、このC/C++はマルチスレッドとかSIMD的な要素を考慮する必要が無いことだそうで、ある1つのデータを順に処理する手順だけ記述すれば、あとは勝手に各Layerがそれを全ての処理すべきパケットなりデータなりに対して行ってくれるそうである。これにより、ソフトウェアでの記述が極めて簡単になる。
また後述するが、Layerscape世代の最初の製品である「LS-1/LS-2」は、どちらかといえばローエンド向けの製品であるため、搭載されるアクセラレータはそれほど多くない事が予想される。なので、搭載していない機能についてはソフトウェア的にこれをカバーする必要があるが、そうした部分に関してはVortiQaなどの標準的なソフトウェアや、各種のValue-add Librariesを併用することで、(処理性能はともかく)ソフトウェアから見たら変わらない形でルールを記述できるようになる。これもある種の仮想化と言えなくもないが、そうした形でローエンドからハイエンドまでのソフトウェア互換性を保つ、というのもLayerscapeの特徴の1つである。
ARMを導入する理由はあくまでローエンド/低消費電力対応
ではなぜARMか? という質問に対してのGuenov氏の回答は興味深いものだった。そもそもLayerscapeの世代においても、Power Architectureコア搭載製品が引き続きメインストリームになる、というのが氏の見解である。Photo05はLS-1/LS-2のパフォーマンスのポジションをまとめたものだが、現行製品であるQorIQ P1シリーズの「さらに下」、という位置づけになり、上位製品に関しては引き続きPower Architectureをベースに展開してゆくことを明らかにしている。
Photo05:将来のCortex-Aシリーズはともかく、Cortex-A7/A15は仮想化対応は最小限の筈だが、Guenov氏によれば「ローエンド向けはまだそこまでの仮想化の機能は必要ない」ということだった |
実際Guenov氏だけでなく、NMSGのラウンドテーブルにおけるTom Deitrich氏の質疑応答でも似たような質問(「もうFreescaleはPower Architectureの開発をやめてARMベースに全面的に切り替えるのか?云々)に対して「Freescaleは引き続きPower Architectureの開発にコミットしており、現時点では64bitのe6500コアが同社にとって最高性能のCPUコアである」と明確に述べている。ではなぜARMを追加させたのか? という質問に対する答えは、Photo02のスライドに出てくる"Core-agnostic approach"である。SDNの世代においては、ハードウェアアーキテクチャの違いそのものは吸収されてしまい、Control-Planeからは見えなくなってくる。そういう状況では、必ずしも単一のCPUアーキテクチャにこだわる必要はなく、用途に応じてCPUのアーキテクチャを切り替えて使う方が現実的であるからという話であった。
では、「なぜARMか? ColdFireとかMIPSという選択肢もあるのではないか?」と確認した返事は、「ARMのエコシステムを利用したいから」というものだった。言うまでも無くARMアーキテクチャは非常に広い範囲で利用されており、多くの開発者がすでにCortex-Aシリーズに慣れている。こうした開発者を取り込むことを目的としているという事だった。実のところ、Freescale以外の多くのプロセッサベンダは、Cortex-Aシリーズのコアを使って通信プロセッサを構成するケースが次第に増えてきている。特にSMB(Small-Medium Business)向けではこれが顕著である。Freescaleはトータルとしての通信プロセッサのポジションはNo.1であるが、こうしたローエンド向けのにおける製品競争は厳しくなってきており、このための布石とも考えられる。
これは、「他のベンダはいずれもCortex-A15をトップエンド向けに据えているのに、Freescaleはローエンド向けなのか?」という質問に対する答えからも偲ばれる。Guenov氏曰く「他社の事は知らないが、FreescaleにとってCortex-A7/A15の性能はローエンド向けである。Cortex-A7/A15のメリットは省電力な事で、これはシステム全体で3W未満のローパワー向け製品に最適である。通信プロセッサの場合、一番重要なのは割り込み処理性能の高さである」という返答であった。このあたりは、e500以降延々と通信プロセッサ向けの構造を追及してきた同社らしい見解と言える。
ちなみにLS-1はCortex-A7のDual Core(Photo06)、LS-2はCortex-A15のDual Core(Photo07)の構成であり、BIG.littleに関しては「携帯機器はともかく通信プロセッサには必要ない」との事。今回はまだアーキテクチャ(と一部製品の概要)が公表された程度で、具体的なスケジュールは未定であるが、「過去の例から言って、来年の今頃には(具体的なスケジュールが)見えてくるんじゃないかな?」(Guenov氏)という話であった。