キャッシュ コヒーレント インターコネクトの複雑性と検証および

キャッシュ コヒーレント インター
コネクトの複雑性と検証および
パフォーマンス解析
今日のシステム・オン・チップ(SoC)の複雑さは、オンチ
ップのインターコネクト構造の複雑さによって測ることが
できます。AMBA®4 プロトコル標準において、従来の
AMBA®3 インタフェースに加えて AXI4™、ACE™、および
ACE-Lite™が導入されました。コヒーレンシは、複雑さを
飛躍的に増大させ、クオリティ・ オブ ・サービス(QoS)
は、今やシステム・パフォーマンスの管理に必須であ
り、QoS 仮想ネットワーク(QVN)は、ルーティングの混雑
を低減しながら高いパフォーマンスを実現するための次
のステップです。このような複雑性の様々な要因に対す
る横断的関心事として、複数のパワー・ドメインおよびク
ロック・ドメインの必要性があります。同時に、市場投入
期間(Time-to-Market: TTM)を削減しなければならない
というプレッシャーもあります。この TTM のプレッシャー
の背景には、パフォーマンスが主要な差別化要因であ
るマルチメディア モバイルシステムにおける激しい競争
があります。ヘテロジニアス マルチコア SoC では、シス
テム パフォーマンス全体に影響する複雑なトラフィック
の相互作用が発生します。アーキテクチャの分析を実
行するため、現在ユーザは、Excel のスプレッドシートや
TLM などのさまざまなツールを使ってアーキテクチャ的
分析を行っていますが、TLM では 20%もの誤差があっ
て不正確すぎます。
この文書では、複雑なインターコネクト、およびインター
コネクト IP の階層構造の検証とパフォーマンス解析を
自動化するソリューションについて説明します。このソリ
ューションによって、ボタンを押すだけで包括的なテスト
ベンチやテストスィートを生成でき、メトリクス・ドリブン検
証やサイクル精度のパフォーマンス解析が可能になり
ます。両者とも、設計後期におけるアーキテクチャ、設
計、実装の変更によるインパクトを最小化するのに重要
な役割を果たします。
SoC の複雑性 – 解決すべき問題
「SoC設計の複雑性度は増加の一途をたどっていることは確かに事実だが、何らかの可視化を
行わないと問題の大きさを把握するのは必ずしも容易ではない」、とよく言われます。図1は、こ
の言葉をよく表していますが、現代のSoCを構成しているARM®特有のIPを際立たせるヘテロジ
ニアス マルチコアのbig.LITTLE™ ARM SoCというARMのビジョンを明瞭に示しています。このブロ
ック図にはユーザIPはほとんどありませんが、マルチメディア モバイルデバイスでは、ARMのIP
に加えて追加のIPがかなりの数あり、少なくとも数百の複雑なIPブロックになることもあることを
念頭においてください。
最大 Cortex-A15 の
0.5 倍の周波数
図1:典型的なbig.LITTLE™ SoCアーキテクチャ
図1からわかるように、SoCのハブはCoreLink™ CCI-400キャッシュ コヒーレント インターコネクト
です。最大5つまでのマスターインタフェースが、その中の2つ(CCI-400の左上のフルACEインタ
フェース)のマスターに含まれるレベル2キャッシュを共有できます。
キャッシュ コヒーレント インターコネクトの複雑さを考慮して、5つのマスターと3つのスレーブだ
けが提供されています(この条件でも50万ゲート以上あります)ので、SoCの構築に必要な多数
の追加マスターや追加スレーブをサポートするインターコネクトがあります。誰もが考えるとおり、
メインメモリ コントローラ(この場合、DDR3/2またはLPDDR2)は、ハイパフォーマンスなIPやプロ
セッサに対して最大の帯域幅と最小のレイテンシを提供するために、CCI-400に直接接続され、
システムで必要なマスターやスレーブを拡張するためにCoreLink NIC-400インターコネクトをカス
ケード接続して使用します。
このインフラストラクチャIPがもたらす主要な複雑さの1つに、システムのすべてのトランザクショ
ン・フローが実行されていることを確認するという一見単純なタスクがあります。1つのインタフェ
ースからのトランザクション・フローだけを記入したSoCのブロック図を見ても、課題が見えてきま
す。図2を参照してください。
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
2
最大 Cortex-A15 の
0.5 倍の周波数
図2:SoCインフラストラクチャの境界と1つのマスターからのトランザクション・フロー
図中の黒線は、LCDコントローラが開始するトランザクションがSoCインフラストラクチャを通過す
る様子を表しています。メインメモリをターゲットにした読み書きによって、Cortex™ -A15、または
Cortex-A7クラスタのL2キャッシュへのスヌープが発生します。スヌープが失敗すると、トランザク
ションは最終的にCCI-400を通過して、DDRコントローラに到達します。
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
3
パフォーマンスの課題
SoC設計の難しい側面の1つは、特定のクリティカルなシステムIPのさまざまな要求をあらゆる
状況下で満たさなければならないことです。一部のIPでは必要なパフォーマンスが十分に予測
可能です。例えば、一般的にカメラやディスプレイのIPの動作は、フレーム同期などの固定周波
数イベントに基づいており、十分に予測可能で周期的なため、とても簡単に動作をモデル化で
きます。
これらのIPにもクリティカルな帯域幅要求はあるかもしれませんが、起こりうる標準的な短期間
のシステム機能停止に対する耐性を保証するのに十分な物理ストレージ(例えばFIFO)を備え
ているのが一般的です。このようなバッファの設計は、システムが過負荷になるような時間長を
決定する最悪のシナリオの知見に基づいて行います。理想的なSoCにおいては、シリコンの面
積と消費電力への影響を抑えるために、これらのバッファをできるだけ小さくするように設計し
ます。このようなIPは、レイテンシ・ トレラント(LT)IPに分類されます[1]。
SoCに多機能のIPが追加されるにつれて、最悪のシナリオを想定するのがますます難しくなって
きています。したがって、パフォーマンスのモデル化は、発生する可能性があるワーストケース
を特定するために行われます。
2つ目の課題は、ARM Cortex-A15のような典型的なオンチップ・ プロセッサに関するもので、こ
れらのマスターは、パフォーマンスの観点からレイテンシ・ クリティカル(LC)IPに分類されます
[1]。SoCアーキテクトの仕事は、有効であるどのようなシナリオにおいても、アクティブであるLT
やLCのさまざまな要件を満たすような、正しいレイテンシや帯域幅を提供する、適切なインター
コネクトのトポロジと構成を見つけることです。
サイクル精度解析の必要性
SoCアーキテクチャを大ざっぱに調べ、インターコネクトやDDRコントローラの生成に利用可能な
構成オプションを少し知っているだけで、トポロジ、アドレスマップ、トランザクション バッファ、動
的QoSスキーム、仮想ネットワーク(QVN)、クロック・ドメイン、フロアプランやレイアウト(ThinLink)を支援するための配線混雑のオプションなどを特定するために、設計者が利用可能なオ
プションが、数千とは言わないまでも数百はあることがわかります。これらのオプションが異な
るシステムシナリオにおいてどのように相互作用を及ぼすかを理解するために、インターコネク
トとDDR IPのパフォーマンスを一緒に探索して計測することは重要な課題であり、パフォーマン
スに悪影響を及ぼすハードウェアの問題のほとんどは、これらのIPのサイクル精度モデルでの
み現れるので、この探索と計測はサイクル精度ドメインで行う必要があります。
ARMを含むインターコネクトIPプロバイダのほとんどが、新しいインターコネクトIPを短時間で生
成することが可能なGUIベースのツールを提供していますが、これらのIPに適合するテストベン
チを作成することは大規模な開発タスクです。この目的でUVMテストベンチを作成する際に、市
販のVIPは大変有効です。しかし、VIPを組み込んで使いやすいテストベンチを作成するという問
題だけでなく、他にも多数の機能に対応する必要があります。
図3は、VIPを使ったパフォーマンス テストベンチの基本的な概念図です。パフォーマンスを把握
するには、SoC全体にわたって流れるトランザクションを計測できることが不可欠なので、インタ
フェースVIPだけでは不十分です。そして、そのためには、インターコネクト リファレンスモデルが
必要になります。
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
4
最大 Cortex-A15 の
0.5 倍の周波数
図3:パフォーマンス ジェネレータを含むUVMテストベンチとインターコネクト リファレンスモデル
ご覧の通り、いくつかのVIPエージェントは、その上に置かれたパフォーマンス ジェネレータ
(PG)機能を使って、AMBAトラフィックを投入するために(実際のIPに代わって)使うことが可能
です(アクティブ ・エージェント)。その他のVIPエージェントは、AMBAのトランザクション・フロー
をモニタするためだけに使われます(パッシブ ・エージェント)。パフォーマンス・モニタは、シミュ
レーション中に必要なタイミングのメトリクスをすべてファイルにダンプします。
実際のIPの RTLの代わりにVIPを使う理由は、シミュレーションの実行時間を改善するためと、必
要なIPおよびSWがすべて利用可能になる前に、早期のパフォーマンス探索を可能にするため
です。また、フルSoCのIPは、さらにインターコネクトで接続されるたくさんのIPを含んだ複雑なサ
ブシステムになることもあります。
パフォーマンス解析とデバッグ
複雑なSoCのパフォーマンス探索の課題の1つに、パフォーマンスのあらゆる側面(大量のデー
タ)を調査することと、デバッグ(大量のデータから人間に解読可能なものを抽出)することのバ
ランスをどう取るかということが挙げられます。より一層の課題としては、複雑なシナリオを簡単
に作成、解析してデバッグできるように、実際のIPをAMBAトラフィックを反映するモデルに抽象
化することが挙げられます。これらすべてのアクティビティを任意のアーキテクチャで何回も繰
り返すことによってのみ、設計者の知見を豊かにして設計の品質を高めることができ、どのよう
なシナリオに対しても理想のパフォーマンスを提供するようにSoCの能力を向上させることがで
きます。
図4は、パフォーマンス解析の例です。マスター別に時間に対するアウトスタンディング・ トラン
ザクション数を示したグラフで、CCI-400の結果です。このようなグラフは、調査対象のシナリオ
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
5
を理解し、そのシナリオがインターコネクトにどの程度の負荷をかけているかを把握する上で有
用なデバッグ手段です。
図4:マスター別のアウトスタンディング・ トランザクション
図5は、マスター別のリード経過時間の分布を表しています。ユーザはこのような解析によって、
長いレイテンシを持つ「異常な」トランザクションを迅速に特定できます。デバッグの観点で言え
ば、パフォーマンス アナライザによって、ユーザはグラフの任意のバーをさらに調べ、そのバー
を構成しているトランザクション(およびそれはどのシミュレーションから来たのか)を即座に確
認し、そのトランザクションの波形に直接ジャンプすることができます。このようなリンクされたデ
バッグによって、この非常に複雑な領域における生産性を大いに向上できます。遅いトランザク
ションを特定するのは、干し草の山から1本の針を見つけ出すようなものですが、マウスを数回
クリックすることで、この作業を達成できるようにするのが理想です。
読み込み経過時間
図5:マスター別のレイテンシ分布
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
6
リード経過時間
図6:スヌープ ヒット/ミス別のレイテンシ分布
図6は同じようなレイテンシの分布を表していますが、スヌープ ヒット/ミスがあるトランザクション
別に分けてあります。赤いバーは、スヌープ ヒットがあったトランザクションです。期待通りレイ
テンシが低いことを意味するように、すべての赤いバーが分布の左側にあるごとがすぐに分か
ります。
Cadence Interconnect Workbench
複雑なコヒーレント インターコネクト、および非コヒーレント インターコネクトのパフォーマンスの
課題と検証の課題に対応するために、ケイデンスは包括的な自動化ソリューションである
Interconnect Workbenchを開発しました。
図7:Interconnect Workbenchの概要
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
7
このツールは、ARMのAMBA Designerなどのツールが提供するIP自動化を正確に反映する自
動化機能を提供します。Interconnect Workbenchは、AMBA Designerの出力を取り込み、自動
的にパフォーマンス用および検証用のUVMテストベンチを構築します。Interconnect
Workbenchでは、IP-XACTのインポートデータを使用して、UVMテストベンチ一式を数分で構築
し、手動で開発したテストベンチでは不可能なさまざまな「what-if」分析を行うことが可能です。
検証収束の加速
SoCの検証エンジニアならだれでも検証は大仕事であり、絶えず変化する仕様の検証はさらに
困難であることに同意するでしょう。設計者が新しいIPを迅速に生成できる自動化ツールがある
ため、SoCインフラストラクチャに対する終盤の設計変更が必然的な結果であることは避けられ
ません。これは、テープアウト前に設計の機能カバレッジの収束に責任を持つ検証エンジニア
にとっては、悪夢そのものです。しかし、救いの手があります。パフォーマンス テストベンチを
作成する自動化ツールは、必要なAMBA VIPすべてと、インターコネクトのトランザクションの整
合性をチェックするインターコネクト リファレンスモデルを含む検証にフォーカスしたテストベン
チを生成することもできます。同時に、追加設定なしでそのまま使える包括的なテストスィートを
サポートするルーティング モデルも生成できます。
図8:自動生成されたインターコネクト検証プラン
Interconnect Workbenchは、検証エンジニアの検証プラン作成も支援します。このツールは、イ
ンターコネクトのトポロジが組み込まれた検証プランのテンプレートを自動的に生成します(図8
参照)。このプランには、インタフェースVIPのプロトコル・カバレッジもすべて含まれているため、
検証エンジニアがUVMテストベンチの構築のような基礎的なことにわずらわされずに、困難な
課題に取り組むこと ができ、生産性向上に役立ちます。
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
8
まとめ
パフォーマンス検証、およびSoCインターコネクト全体の検証という課題への取り組みは複雑な
問題であり、テストベンチ作成タスク、およびメトリクスを収集するためのDUT計測のタスク、さら
にAMBAトラフィックに関してIPの動作をモデル化する機能を自動化するためには、高度なツー
ルが必要です。AMBAアクティビティのハイレベルな「システム的」観点を提供するパフォーマン
ス探索への方法論的なアプローチ、およびシナリオの詳細を迅速に掘り下げて、この情報をシ
ミュレータの実際のアクティビティとすぐに相互に関連付けることを可能にするためには、高度
な対話型ツールも必要です。
ケイデンスのInterconnect Workbenchは、UVMテストベンチの自動生成、パフォーマンス モニタ
によるDUTの計測、およびパフォーマンス ジェネレータによるAMBAトラフィックの生成を含む、
AMBAパフォーマンス探索のすべての面に対応しています。同じテストベンチを包括的な検証
収束の基盤として自動構築し、ルーティング・モデルとテストスィート生成の機能を無償で提供
することもできます。このようにして、Interconnect Workbenchは、標準ベースの環境で高い生
産性と品質を実現します。
参考資料
[1]「Heterogeneous Multi-Core Platform for Consumer Multimedia Applications」
Kollig氏、Osborne氏、Henriksson氏共著
DATE2009
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
9
執筆者
ニック・ヒートンは ASIC および EDA のベテランで、複雑な SoC の設計と検証の分野で 25 年以
上の経験があります。ヒートン氏は、1983 年にロンドンのブルネル大学のエンジニアリング/管
理システムコースを主席で卒業し、ブラックネルで ICL 社の ASIC 設計者として働き始めました。
1993 年にスペシャリストによる ASIC の設計および検証を行う会社 Excel Consultants を設立し
て、ARM や Altera などの顧客にサービスを提供しました。2002 年に Verisity 社(現 Cadence
Design Systems 社)に、北ヨーロッパ・コンサルティング・エンジニアリングのマネージャーとして
入社しました。
現在は、Cadence の研究開発部門のシニア・ソリューション・アーキテクトであり、Interconnect
WorkBench を担当しています。
ポール・マーチンは、1987 年に電気/電子エンジニアリングの卒業学位を取得した公認技術者
(MIET)です。Rascal 社に設計エンジニアとして入社し、その後 Cadence Design Systems 社のヨ
ーロッパ設計サービスチームの RTL デザインおよび検証のリーダーになり、1999 年にマイクロ
プロセッサ IP ベンチャーの ARC にテクニカル マーケティングとして参加しました。
ARM に入社するまでの 10 年間 NXP 社(前 Philips 社)の半導体 CTO 部門で幹部として働き、
設計ツール、メソドロジおよび IP の策定および NXP 社の SoC 部門への展開を担当していまし
た。
現在 ARM では、デザイン イネーブルメント アンド アライアンスのマネージャーとして、効果的な
ARM HW 設計のエコシステムを実現するために、ARM パートナーとの共同作業を担当してい
ます。
キャッシュ コヒーレント インターコネクトの複雑性と検証およびパフォーマンス解析
10