SoCのホモ接続とヘテロ接続

SoC(System On Chip)のマルチコアで採用されるホモ接続とヘテロ接続について記載します。
「ホモ接続」は全て同じコアで構成され、コア間のデータ転送が容易のためソフトの並列度向上に有効。例えば、ArmのCA73だけで構成。

「ヘテロ接合」は異なるコアで構成され、特定のソフトに特化した処理や、電力効率を重視する場合に有効。Armの仕様でbig.LITTLEがあり、例えば、CA73をbig(最大4コア)、CA53をLITTLE(最大4コア)に割り当て、性能が必要な時はbig、消費電力を下げたい時はLITTLEに切り替えることが可能(bigとLITTLEを同時に動かすことはできない)。bigとLITTLEはそれぞれ同じコアで構成され、bigクラスタ、LITTLEクラスタと呼ばれる。bigクラスタとLITTLEクラスタの間は、コアが異なるのでキャッシュデータの受け渡しが弱点。後継のDynamIQでは、bigクラスタやLITTLEクラスタの区分けはなく、同じクラスタ内に高性能CAと低消費電力CAが混在できる(最大8コア)。クラスタ外にL3キャッシュをサポートし、異なるコア間のキャッシュデータの受け渡しロスを低減。なお、CAはArmのCortex-Aシリーズを意味しています。

図1.big.LITTLEのイメージ

bigクラスタが動作していて、処理負荷が小さくなりLITTLEクラスタに処理を移す場合、
・LITTLEクラスタのCAをオンする。
・bigクラスタのCA ContextをLITTLEクラスタにコピーする。
・bigクラスタのL2キャッシュの内容をLITTLEクラスタにコピーする。
・bigクラスタのCAをオフする。
という処理を行い、特にL2キャッシュのコピーのオーバーヘッドが大きい。その対策としてDynamIQではL3キャッシュをサポートする。

図2.DynamIQのイメージ

なお、「ヘテロ接合」は、ハードウェアの電源制御を行うACPI(Advanced Configuration and Power Interface)規格に対応するのに有効。ACPIは、RAM以外の電源オフするスリープ、RAMのデータを退避してから電源オフするハイバネーションなどを定義している。

いいなと思ったら応援しよう!