Vengineerの戯言

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

AMDの I/O Die (client I/O Die と server I/O Die)を比べてみた

はじめに

昨日の「Ryzen Threadripper PRO 5000 & Ryzen 7 5800X3D」を振り返り、Ryzen と Threadripper / EPYC の I/O die の違いを調べてみた。

client I/O Die (cIOD) と server I/O Die (sIOD)

ここにあった、cIOD と sIOD の写真を何度も眺めてみた。

www.techpowerup.com

参考のために、2つの Die を並べてみた (写真を説明のために、引用します)。左側が cIOD、右側が sIOD

f:id:Vengineer:20220316140230p:plain

GFの FinFIT 12nm (12LP) っぽい。同じプロセスなので、比率を合わせて、sIOD の左下の1/4 を cIOD の下に並べてみた

f:id:Vengineer:20220316140419p:plain

最後は、左の上下の2個を拡大して、並べなおしてみた。これ以降は、この図を使って説明します。 

f:id:Vengineer:20220316140505p:plain

各ブロックの比較

下記のブロックは両方にあって、

  • x16 SerDes PHY x 2: PCIe Gen4 x 16
  • Dual-Channel DDR4 PHY
  • CCD IFOP PHY x 2
  • SATA IO Buffers x 2
  • x16 DerDes Controller x 2
  • Fabric Switch
  • IFOP Endpoint x 2
  • IO Root Hub

ここまでは、レイアウトは同じっぽいです。

  • Tag Directories
  • MC
  • PSP
  • USB Control + Misc. IO
  • USB 10G PHY
  • USB 2 PHY
  • USB Root

sIOD には、3つ(x4)の Fabric Switch がありますが、cIOD には Fabric Switch は1つしかありません。また、sIOD にある2つの S-Link は、cIOD にはありません。

I/O は、エッジになくてもOK

EPYC 用の IO Die (sIOD) を初めて見たとき、I/O って、エッジになくてもOKなんだと思いました。昔はワイヤーボンディングだったので、エッジにないとポンデリングできなかったけど、今では Die をそのまま実装するような感じになっているので、I/O をどこでもおけるんですね。。。

Block図との対応

sIOD は、cIOD を4つ接続した感じになっているっぽいです。

下記のツイートに、2nd Gen AMD EPYC Improed Memory Latency の図が載っていたので説明のために引用します。

f:id:Vengineer:20220316142205p:plain

左下(右下も同じ感じ)は、下記のような対応(S-Linkなるものがある)

f:id:Vengineer:20220316143838p:plain

左上(右上も同じ感じ)は、下記のような対応(S-Linkなるものはない)

f:id:Vengineer:20220316143922p:plain

おわりに

CCD を Ryzen, Threadripper, EPYC で共通に使うだけでなく、I/O Die の中の各ブロックも共通に使っているのがわかりました。