AMBA5ではデバイス間のコヒーレンスを取るためのプロトコルとしてCHIが導入される。CHIはCoherent Hub Interfaceの略称で、AMBA4ではACEと呼ばれていたものを拡張したものになる。
ACEとCHIの違いはどのようになっているのだろうか。CHIは3階層に分かれたパケットベースの階層型通信プロトコルを持っているという点がACEと異なる。SoC内のより幅広いデバイスを持っており、CPUクラスタ・グラフィクスプロセッサ・メモリコントローラ・I/Oブリッジなどの機能を持っており、これらの機能をCHIを使って結合することを目的としている。
CHIの特徴は以下のようになっている。
- スケーラブルなアーキテクチャとモジュール化されたデザインにより、小さなシステムから大きなシステムまで適用できる。
- 独立した階層によるアプローチを取っている。プロトコル層、ネットワーク層、リンク層に分けられている。
- パケットベースの送受信を行う。
- スヌープ・キャッシュ・メモリアクセスなどが必要なインターコネクトベースのホームノードによりすべてのトランザクションが処理される。
- CHIは以下のコヒーレントプロトコルをサポートする。
- CHIのトランザクションは以下のものを含む
- プロトコルのリソースを管理するためのリトライリクエストをサポートする
- エンドツーエンドでのQuality of Service(QoS)をサポートする
- システム内でのコンフィギャラブルなデータ幅をサポートする
- トランザクション単位でのARM TrustZoneをサポートする
- 送信トランザクションフローの最適化
- エラー通知システムによりシステムの信頼性と整合性を確保する
- 電力対策
CHIのレイヤ
CHIは以下のレイヤから構成される:
- プロトコル層:通信単位、トランザクション
- ネットワーク層:通信単位、パケット
- プロトコル層のメッセージをパケットに分割する
- パケットを作成し、ソースとターゲットノードのIDを付与する
- リンク層:通信単位、フリット
CHIのトポロジ
CHIはトポロジを一般的に定義せず、どのようなトポロジでも動作することができるということになっている。
- クロスバ:シンプルな構成で低レイテンシの通信を提供できるが、ノード数が小さい場合にのみ適する
- リング:効率性とレイテンシのトレードオフが存在する。リングが大きくなるとレイテンシも増加する
- メッシュ:より多くの配線を使用することでより大きなバンド幅を確保する。スイッチを配置することでスケーラビリティがありより大きな構成を取ることができる
コヒーレンスモデル
CHIが想定するコヒーレントシステムの例を以下に示す。