Schi Heil と叫ぶために

hiroakiuno's blog

big.LITTLE の制御ソフトウェア技術を整理してみよう (その1)

http://pc.watch.impress.co.jp/docs/column/1month-kouza/20140626_655176.htmlpc.watch.impress.co.jp
上記の ARM の記事を見つけて、そこからいろいろたどってみたのだが、ARM の big.LITTLE の制御ソフトウェア技術(ユースモデル、ソフトモデルとも書かれている)の表記がいろいろ変わってわかりづらい。そこで Web の記事だけを拾って客観的に整理してみた。

まず一番日付が古い 2011/11/30 の 【後藤弘茂のWeekly海外ニュース】ARMの新省電力技術big.LITTLEプロセッシング - PC Watch によると最初は2個で、

  1. Task Migration Use Model
  2. MP Use Model

http://pc.watch.impress.co.jp/img/pcw/docs/494/357/5.jpg

次に 2013/05/21 の 【後藤弘茂のWeekly海外ニュース】海外のオクタコア版GALAXY S4の「big.LITTLE」ソフトウェアアーキテクチャ - PC Watch によると、分類が3つになり、

  1. Cluster Migration Use Model (Hypervisor Mode)
  2. CPU Migration Use Model (In-Kernel Switcher Mode)
  3. MP (Multi-Processing) Use Model

http://pc.watch.impress.co.jp/img/pcw/docs/600/181/11.jpg

続いて 2013/12/18 の 【後藤弘茂のWeekly海外ニュース】2014年にはメジャーになるARMの省電力技術「big.LITTLE」 - PC Watch および、2013/12/20 の 【後藤弘茂のWeekly海外ニュース】2014年のARMのSoCの中核技術となる「big.LITTLE MP」 - PC Watch では、3つ目が global task scheduling と呼ばれるようになり、MP は括弧の中に入った。

  1. Cluster Migration Use Model (Hypervisor Mode)
  2. CPU Migration Use Model (In-Kernel Switcher Mode)
  3. Global Task Scheduling (big.LITTLE MP)

http://pc.watch.impress.co.jp/img/pcw/docs/628/049/10.jpg

http://pc.watch.impress.co.jp/img/pcw/docs/628/480/01.jpg

さらに最近の 2015/11/28 の 【後藤弘茂のWeekly海外ニュース】Cortex-Aファミリーのダイエリアの変化から見えてくる次世代ARM CPU「Artemis」 - PC Watch では Heterogeneous がついた。

  1. Cluster Migration Use Model (Hypervisor Mode)
  2. CPU Migration Use Model (In-Kernel Switcher Mode)
  3. Global Task Scheduling (Heterogeneous Multi-processing)

http://pc.watch.impress.co.jp/img/pcw/docs/732/643/MP.png

経緯を拾っていくと、Cluster Migration Use Model は Task Migration Use Model の名称が変わったもの。

しかし、その後、ARMは路線を変更した。2012年秋の同社のカンファレンス「ARM Techcon」では、タスクマイグレーションと呼んでいたモデルを「クラスタマイグレーションモデル(Cluster Migration Model)」に名称変更。その上で、クラスタマイグレーションはプロトタイプのみで終わり、実際の製品向けには提供されないことになった。
【後藤弘茂のWeekly海外ニュース】海外のオクタコア版GALAXY S4の「big.LITTLE」ソフトウェアアーキテクチャ - PC Watch

また、技術の名前かソフトの名前か、Linaro が実装するか ARM が実装するか、で同じものでも呼び名が別になっている様子。

ここで用語を整理しておくと、Linaroの「big.LITTLE In-Kernel Switcher(IKS)」とARMの「big.LITTLE CPU Migration」は全く同じものだ。それに対して、big.LITTLEのCPUコアをOSスケジューラで効率的に使う技術自体のARMでの名称が「Global Task Scheduling(GTS)」。そして、GTSのARMでの実装が「big.LITTLE MP」パッチセットとなっている。また、big.LITTLE MPは、Linaroでは一時「Heterogeneous MP(HMP)」と呼ばれていた。さらに、現在Linuxコミュニティで議論されている、big.LITTLE対応も含む電力対応タスクスケジューラは「Power-Aware Scheduler」などと呼ばれている。
【後藤弘茂のWeekly海外ニュース】2014年にはメジャーになるARMの省電力技術「big.LITTLE」 - PC Watch

ARMベースSoC(System on a Chip)の省電力技術「big.LITTLE」。big.LITTLEでは、現在、2種類のソフトウェアモデルが提供されている。1つは、Linaro(ARMベースのLinuxコアテクノロジの共同開発のための非営利エンジニアリング組織)が開発した「big.LITTLE In-Kernel Switcher(IKS)」。これは「big.LITTLE CPU Migration」とも呼ばれる。

 もう1つは、ARMが開発した「big.LITTLE MP」で、「Heterogeneous MP(HMP)」とも呼ばれる。ヘテロジニアスな構成のCPUコアを、拡張したOSスケジューラで使う技術コンセプト「Global Task Scheduling(GTS)」の現在の実装のパッチセットがbig.LITTLE MPだ。前者はLinaro、後者はARMで、しかも両者でそれぞれの呼び方が異なるためやや混乱しがちになっている。
【後藤弘茂のWeekly海外ニュース】2014年のARMのSoCの中核技術となる「big.LITTLE MP」 - PC Watch

またこちらを見ると

What’s the difference between "Global Task Scheduling" and "big.LITTLE MP"?
Global task scheduling is the technique of using all cores under control of the scheduler. The big.LITTLE MP patchset is a set of ARM-developed scheduler enhancement that implements the GTS technique.

LDTS

とある。上の記事はこれの和訳に近いかも。

OR を取るとこんな感じ。

  1. Cluster Migration Use Model
    • Hypervisor Mode
    • 旧名は Task Migration Use Model
  2. CPU Migration Use Model
    • Linaro は In-Kernel Switcher (IKS) Mode と呼ぶ
  3. MP (Multi-Processing) Use Model
    • すべてのコアをOSスケジューラで効率的に使う技術自体のARMでの名称が Global Task Scheduling(GTS)
    • GTS の一実装であるパッチセットを big.LITTLE MP と呼ぶ
    • big.LITTLE MP は HMP (Heterogeneous MP) とも呼ばれる

ところで ARM TechCon 2015 という ARM のイベントでこの辺の最新状況が話された様子。

このイベントの直接の資料は見つからないが、探してみると似たようなイベントが台湾であり、同じタイトルでそこには資料が置かれていた。

この p.17 を見ると、

  • HMP
  • HMP, IPA (Intelligent Power Allocation)
  • IPA, EAS Gen1 (Energy Aware Scheduling)
  • EAS + IPA Gen2

という感じで MP Use Model の技術がさらに進化している様子がわかる。

以上、まずは用語を整理してみた。つづく