Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

arm CoreLinkについて、まとめてみた

はじめに

12/10(日)の半導体チップ雑談のお題「arm CMN-600/CMN-700」を説明した時にarm CoreLinkについて調べたので記録のためのブログに残します。

arm CoreLink

下図は 上記のCCI-400のサイト(ここ)から説明のために引用します。

CCI-400は、

  • 2つのACE (fully coherent processors / Arm Cortex CPU cluster) を接続することができます。1つのACEには4つのCPUコアを搭載できるので、2つのACEでは8個のCPUコアになります。
  • CCI-400の発表時では、Cortex-A7/A15/A17 や Cortex-A53/A57 が接続できるようになっていました。
  • 1-3 IO interfaces
  • 1-2 Memory Interfaces
  • 1 System Interfaces

  • CCI-500 : Cache Coherent Interconnect

下図は 上記のCCI-500のサイト(ここ)から説明のために引用します。

CCI-500は、

  • 2つのACE (fully coherent processors / Arm Cortex CPU cluster) を接続することができます。1つのACEには4つのCPUコアを搭載できるので、2つのACEでは8個のCPUコアになります。
  • CCI-500の発表時では、Cortex-A53/A72 が接続できるようになっていました。その後、Cortex-A73が発表されました。
  • 1-5 IO interfaces
  • 1-4 Memory Interfaces
  • 1-2 System Interfaces
  • Snoop filter なるものが追加されました

下図は 上記のCCI-550のサイト(ここ)から説明のために引用します。

CCI-550は、

  • CCI-500 と基本的に同じ
  • CPUの部分が DynamIQ Shared Unit対応
  • CPUは、Cortex-A75/A55

下図は 上記のCMN-600のサイト(ここ)から説明のために引用します。

CNM-600は、

  • 1-32 fully coherent requesers (Armv8-Aなど)
  • 1-96 IO interfaces
  • 1-8 Memory Interfaces
  • 1-8 System Interfaces

  • Cortex-A CPU

  • DMC-6200/DDR4-3200
  • PCIe 4
  • NIC-450
  • CCIX

下図は、Arm CoreLink CMN-600 Coherent Mesh Network Technical Reference Manual r3p2 から説明のために引用します。

下図では、

  • 3-96 IO interface

になっています。

また、

  • 0-2 CXS interfaces

となっています。これは上の図の Cohrent mutihip link 経由で CCIX に接続するポートが最大2個あるということを意味しています。

CXSは、AMBA CXS Protocol Specification です。PDF版のみ提供されています。

下図は、PDFの15ページ目の図です。説明のために引用します。

下図は、PDFの19ページ目の図です。説明のために引用します。上の図と対応させると、

  • On-chip Interconnect = CCIX and CXL protocol layer interface
  • Off-chip Transport Logic = PCIe data link and PHY layers

になります。

下記の図は、上記のページから説明のために引用します。

自動車用の安全性を向上したもの。

  • Integrated RAM with ECC, CRC protection on transport, transaction error detection and memory protection unit. Fault Management Unit built in.

下図は 上記のCMN-700のサイト(ここ)から説明のために引用します。

CNM-700は、

  • Up to 12x12 mesh size with single and dual data paths
  • 0-128 coherent cluster of CPUs or accelertors per die, 512 total
  • 0-128 system cache instances for 0-512MB shared cache per mesh
  • 1-40 I/O nodes supporting up to 120 AXI5/ACE5-lite interfaces
  • 1-32 I/O nodes supporting ACE-lite ports, optimized for PCIe peer to peer
  • 0 - 40 single or dual channel memory controllers
  • Distributed snoop filter with perfect match up to 128 cores or DSUs
  • Up to 32 CCIX or CXL gateways for SMP links, memory, or accelerators

  • Neoverse CPU

  • DDR5/HBM3
  • PCIe 5
  • NIC-700
  • Chip-to-chip gateway

CMN-600 と CMN-700 の違いは、CMN-600 は Cortex-Aシリーズ用、CMN-700 は Neoverseシリーズ 用という感じのようです。また、CMN-700は multi die を前提にしているようです。

下図は、Arm Neoverse CMN-700 Coherent Mesh Network Technical Reference Manual (PDF版) の Page.265から説明のために引用します。

CXL へのアクセスは、CMN-700 の中の CCG(CXL Gateway) 経由で CXL IP に接続するようです。

chip 間は、CML SMP経由で接続しています。

おわりに

このブログでも何度も取り上げたCCN-50Xというのもあったのですが、今は使われていないようですね。

下記のCoreLinkキャッシュ・コヒーレント・ネットワーク・ファミリの部分をクリックすると、「404 - NOT FOUND」となります。

スマホは、CCI-500 なんですかね。とは言え、System Level Cache なるものがあるので、無くなった CCN-50X の方だと思うのですが、どうなんでしょうか?

ちょっと調べてみたら、

という論文を見つけました。この論文の中に下図がありましたので、説明のために引用します。

CCN-5xxでは、内部にSystem Level Cache (L3 Cache) があったのですが、Dynamic Shared Unit が登場し、この中に System Level Cache が入ったので、CCN-5xx は必要無くなったということですかね。

DynamIQ を発表したのは、2017年3月21日

CCN-504 は、2012年10月10日

- ARM On-Chip内部接続技術となる“CoreLink CCN-504”を発表

CCN-5xx => DynamIQ => CCI-500 の順なので、CCN-5xxは必要無くなり、arm のサイトからも削除されちゃったんですね。

納得しました。

関連ブログ

vengineer.hatenablog.com

vengineer.hatenablog.com

vengineer.hatenablog.com

vengineer.hatenablog.com