システムキャッシュを実装しましたか?

  • By Rajesh Ramanujam
  • 25th 8 2016
  • 2

私たちが住んでいる世界と同じように、コヒーレントなSoCシステムは競合することが多い要望や要求、ニーズが見事に寄せ集まっています。CASレイテンシの影響を大きく受けやすいトラフィックフローもあれば、厳密なコヒーレントバンド幅の要件を持っていたり、ジョブを遂行するために「マストアイテム」であるリアルタイムのニーズに関心を向けているものもあります。「マストアイテム」から「ベストエフォート」まで差は大きく異なりますが、適切なバランスとこのような要求について説明した共通言語を見つけることで、コミュニケーションが一層簡単になるだけでなく、今日の世界のように、最適化され柔軟性のあるソリューションの開発に役立ちます。

必要は発明の母です。複雑な異機種混在SoCが相互に結びついている中、最終レベルのキャッシュ(LLC)は複数の必要な役割を果たします。LLCの主な役割は、さまざまなすべてのトラフィックニーズがシームレスな方法で満たされているかどうかを確認することにあります。こうすることで、急速に変化し対立する要件に対して衝動的で極端な反応で対処しようとするときに起こり得る、不快な「ぎくしゃくした」または不安定なパフォーマンスを減らすことができます。

私は例え話が大好きなので、次の話をしてみたいと思います。現在住んでいる町、オースティンは「世界のライブ音楽の中心地」として知られていますが、フード産業も盛んで、町中に絶妙な美味しさの食べ物が溢れています。この町ではまってしまうものに、食べ物とそれを料理する過程があります。たとえば、私はこの町に長く住んでいるので、美味しいビスクの作り方はわかっています。

shutterstock_234308422

美味しいビスクを作る過程を知っている(あるいは一度でも味わったことがある)人なら、たくさんの材料が加えられていることはご存知でしょう。味を良くするために各材料が果たす役割について評価できるほど、その複雑さを理解しているわけではありませんが、最後にストレーナーを使わないと、単なる美味しさからまさに神業といえる美味しさに変える、香り豊かで舌触りがなめらかな仕上がりにはなりません。ストレーナーの役割は、きめが粗くザラザラした混合物をなめらかでスムーズな混合物に変えることにあります。これで完成です!同様に、複雑なSoCでは、LLCがさまざまなトラフィックの中で競合する成分をスムーズに流してくれます。

netspeed2
Pegasus Last Level Cache は、メモリのボトルネックを排除し、システム全体のパフォーマンスを改善する高度にカスタマイズ可能かつコンフィグラブルな最終レベルのキャッシュです。

LLCがメリットとなる状況をいくつか例を挙げながら説明します。

メモリ(重要なリソース):メモリはシステムリソースの中で「最も重要とされるコンポーネント」です。さまざまなアプリケーションによって使用および共有されるメモリ量と、そのバンド幅とレイテンシ要件の点において、システムパフォーマンスに大きな影響を与えます。メモリパフォーマンスはプロセッサパフォーマンスに大きな遅れを取っています。これは、マルチコアプロセッサやGPUなどの並列コンピューティングの進化が主な要因です。現在の手法では、このリソース問題の1つの要因を解決することに重点を置いており、他の要因はなおざりにされています。

  • レイテンシを短縮するために短い直接パスを作ると、クロックが遅くなり、これがバンド幅低下を引き起こします。
  • その他の手法では、レイテンシに大きな影響を与えながら、高いfmaxを得るために高レベルなパイプライン化を図っています。

しかし、これらのいずれのソリューションも、異機種混在SoCの重要な部分である変動する機能コヒーレンシ要件を解決しようともしません。

LLCは、システムのボトルネックを排除し、重要なレイテンシを短くすることで、システムパフォーマンスを向上させるようにカスタマイズできます。SoCでさまざまな異機種混在マスタから混雑を解決、さらに排除することは、スケーラブルソリューションの重要な一部です。LLCは、ローカルでアクセスを処理し、メモリ効率を上げることで、これを実現します。

消費電力の削減:高いメモリ効率の副産物として消費電力が削減されます。これは、メモリの管理、最適化、およびアクセスに関する賢明な決定を下したことで実現されます。コンフィグラブルなLLCは、DDRコントローラの独自の特性に合わせてカスタマイズできるだけでなく、より重要なこととして、LLC内で賢い決定を下すことで、コントローラの最適化を解釈できます。

コヒーレントと非コヒーレント:LLCは、不要なルックアップを低減してコヒーレントキャッシュアクセスのレイテンシを短くする目的で、コヒーレントな方法で作成することができます。これにより、コヒーレントなLLCを物理的にバイパスする非コヒーレントトラフィックを低下させずに、コヒーレントアクセスのレイテンシが改善されます。しかし、他の一部のシステムは、局所性の高いトラフィックのバンド幅の改善により大きな関心を向けています。このためには、トラフィックのコヒーレント特性に関係なく、特定のアドレス範囲へのすべてのアクセスをキャッシュする非コヒーレントLLCを使用します。非コヒーレントLLCのもう一つの利点は、すべてのトラフィックに影響するため、遷移時にフラッシュする必要がないという点です。

キャッシュをRAMとして再利用:RAMのコストが大きいことは周知のとおりであり、LLCのデータアレイは安い不動産物件ではなく、無駄にしてはいけません。大きなLLCからメリットを享受するアプリケーションもあれば、直接アドレス指定可能なRAMを使用した方が効果的なアプリケーションもあります。キャッシュをスクラッチパッドRAMとしてカモフラージュするための実行時構成オプションを持っていることが、シリコンリソースとパフォーマンスの両方において、キャッシュ使用率を最大限に高める重要な要素です。

ワークロードベースの消費電力の削減:LLC RAMバンクは自然な階層と構造になっているため、選択したパワーダウンスキームに簡単に合わせることができます。電力を節約するための要件がはるかに高いワークロードは、LLCの一部(データアレイを含む)またはその全部をシャットダウンすることでメリットが得られます。これは、特にモバイルアプリケーションにおいて、システム内の電力を最後に少しでも節約するためのもう一つの貴重な実行時機能です。

すべてのスレーブエージェントが同じように作成されるとは限らない:1つのソリューションが全部に対応しているわけではありません。DDRの使用方法は、オンチップRAMやフラッシュ周辺機器の使用方法とは大きく異なる場合があります。アドレス範囲に基づいて複数のLLCを用意しておけば、システム設計者は各LLCをスレーブの特性に基づいてカスタマイズできます。これにより、異なるアドレス範囲でさまざまな要件に対応するために交互に切り替えを行うことなく、動作にさらなる一貫性を持たせることができます。

異機種混在の割り当てニーズ:スレーブエージェントと同様に、すべてのマスタが同じように作成されているわけではありません。トラフィック特性に一貫性がない場合、割り当てニーズはどうして必要なのでしょうか?割り当てが固定されている場合は、トラフィック特性が異なるマスタがキャッシュを使用すると、動作に一貫性がなくなり、予期しない動作も生じます。LLCは、マスタに基づいてリソースと割り当てポリシーを実行時ごとに振り分ける機能を備えた最適な手段です。このために、さまざまなユーザーにLLCリソースを振り分けることができるようにする権限をアプリケーション開発者に与えました。これによって、厳しいパフォーマンス要件を持ついくつかのアプリケーションで必要なリソースを確保できるだけでなく、要求者間でリソースの方式はアクセス方式を奪い合うのを回避できるため、不要な排除が減ります。

結局、LLCは単にL3であるだけでなく、それ以上の役割を果たします。メモリのボトルネックにお悩みですか?システムリソースを共有、再利用されていますか?システム動作が不安定ではありませんか? RAMは十分に用意してありますか?消費電力をさらに削減する必要はありませんか?これらの質問に対して1つでも当てはまる場合は、LLCをぜひ検討していただき、ご自身のシステムをさらにパワーアップしてください。次のように考えてみてください。台所にあるのは鍋や包丁、調理器具だけですか?おそらく、それ以外にも、楽に調理ができ、美味しい料理を作れるように、その他の台所用品も慎重に吟味した上でご用意されていることでしょう。

Request A Demo

ajaxloader

Crafted @ Lollypop.biz