既報のVersalなどに直接関係があるわけではないが、XilinxはCCIX ConsortiumのPromotorメンバーでもあり、今年5月にはCCIXを搭載したVirtex Ultrascale+を発表している。そのCCIXに関してXDF 2018の中でテクニカルセッションがあったので、その内容をお届けしたい。
CCIXは2016年5月に、AMD/ARM/Hurwei/IBM/Mellanox/Qualcomm/Xilinxの7社をPromotorとして策定を始めた、キャッシュコヒーレンシなインターコネクト(Cache Coherent Interconnect for Accelerators)の規格である。これを策定するのがCCIX Consortiumであるが、このCCIX Consortiumが結成されたちょっと後のXilinxが発表したスライドでは「オープン」という言葉が躍っているのは、IBMのCAPIとかNVIDIAのNVLINK、IntelのOmniPathといった規格がいずれもプロプラエタリなものである事を意味している。
もっともCAPIはその後OpenCAPIに進化しており、またXilinxはOpenCAPIになる前のCAPIの時点ですでにサポートをしていたりする上、CCIXのプロモータにIBMも名前を連ねたりしている辺りが非常に政治的にややこしい部分はあるのだが、それはともかくとして動機そのものは簡単で、どんどんI/Oが高速化していく中で、キャッシュコヒーレンシなインターコネクトが無いと不便、というものだ(Photo01)。
加えて言えば、マルチコアSoCのコア間接続(そのコアがメインプロセッサなのか、アクセラレータなのかは別にして)にも利用できるとする(Photo02)。ただData Sharing Perspectiveというあたりに少し含みがあるが、これは後ほど説明したい。
CCIXの現状は? というと、今年6月18日にBase Specification 1.0がリリースされている。実はこれに先んじて、昨年のArm TechConのあたりで各社ともCCIXのIPを準備中という話が出ており、今年からぼちぼちCCIXを実装したシリコンも登場しつつある(Photo03)。
実のところCCIX 1.0はPCI Express Gen4をターゲットに、この上に実装されるような形になっており、そのPCI Express Gen4はそれこそエンドポイントこそ16/14nm世代で実装可能だが、ホスト側は10/7nm世代を想定しているため、実際にホスト側が出てくるのは2019年以降という感じになっている。
これに続いてCCIX 1.1/2.0のアップデートも披露された(Photo04)。
PCI Express Gen5そのものは(今年6月のPCI-SIGのロードマップによれば)2019年第1四半期に予定されているが、ほぼこれと同じタイミングでCCIX 1.1がリリースされる予定である。これに続き、CCIX 2.0が2019年末に予定されているが、ターゲットが56GT/sというのは要するに100G EthernetのPHYの利用を考慮しているものと思われる。
また2つのユースケースも提示された。1つ目は普通のアクセラレータ向け(Photo05)である。
要するにメインプロセッサとアクセラレータをCCIXでつなぐ事で、両者を分離することが可能になり、かつ性能を犠牲にしないというものだ。
もう1つは、メモリ拡張I/Fとしての利用である(Photo06)。
こちらは、SCM(Storage Class Memory)をPCIeの先にぶら下げてストレージとして利用しているものを、CCIXにすることでより低レイテンシでアクセス可能になり、しかも柔軟に構成できるというものだ。