简单来说,Zen 2一代由于chiplet设计,需要在CPU基板上布线IFOP(碍于成本等其他原因没有上硅互联层,interposer)负责ccd和iod之间互联,为了降低布线难度(看看ZEN 2基板的厚度就跟明显了),把原先256bit* FCLK全双工的IF阉割成了256bit*FCLK读 128bit*FCLK写,单个CCD核心读取 copy时带宽仍能达到内存理论带宽,写入就只剩一半。双CCD的话两个CCD都能有128bit*FCLK写入,合起来就是256bit*FCLK写入。但是单个CCD内核心写入实际还是半速的。
从实际体验来说影响挺小的,毕竟实际上还是读多写少,Zen 2一代单CCX 16M大缓存也能较好起到缓冲作用。另外CCX之间一致性也是需要跨DIE走IF的(CCD0->IOD->CCD1,CCD之间没有直接连接),这方面可能有一定影响,但从实测结果来说,即使有也被zen 2一代IF本身的众多提升而掩盖了,ZEN 2一代互联延迟相比ZEN下降很多。
上面的说法其实还是挺粗糙的,因为CCD和IOD之间互联其实是串行化(SerDes)的(并行线密度高,要求长度相同,需要上interposer),所以我全都是用bit*clk这种形式表示带宽而没用单纯的位宽。具体内容可以参照后藤的这篇文章(谷歌翻译):
https:// pc.watch.impress.co.jp/ docs/column/kaigai/1223210.html#06_l.png
需要注意文章里面这张图是错的:
7nm Ryzen TR Eypc 单CCD写入都是半速的,但是这篇文章对AMD IF互联讲解还是比较透彻的,对IF,GMI等术语作了比较好的解释。
也可以看看AMD ISSCC2020的展示,
这里面说了一些设计的具体内容,稍微摘录了一下: