はじめに
Tenstorrent の Blackhole の内部のレイアウトは、下記のブログで紹介しました。
こんな感じになっています。この図では、ARC CPUと SiFive の 16個のX280 が左端にあるように描かれています。

先日、github にアップされたコードによると、ARC CPUと SiFive の 16個のX280の場所がわかりましたので記録に残します。
X280 の位置
L2CPUなるものが下記のPRにて追加されました。この L2CPU が SiFive の X280 のようです。
ここにある
static const std::vector<tt_xy_pair> L2CPU_CORES_NOC0 = {{8, 10}, {8, 4}, {8, 8}, {8, 6}};
追記)、2025.05.31
現在は、下記の値に変更になったようです。
static const std::vector<tt_xy_pair> L2CPU_CORES_NOC0 = {{8, 3}, {8, 9}, {8, 5}, {8, 7}};
です。横方向の8番目に4カ所、あることになっています。ということは、16個を4分割するので、1つのノードには4コアの構成になっているようです。
ARC CPU の位置
ARC CPUの位置は、ここにある {8,0}
static const tt_xy_pair ARC_GRID_SIZE = {1, 1};
static const std::vector<tt_xy_pair> ARC_CORES_NOC0 = {{8, 0}};
static const std::vector<tt_xy_pair> ARC_LOCATIONS = ARC_CORES_NOC0;
Security Cores
Security Cores なるものもあります。
static const std::vector<tt_xy_pair> SECURITY_CORES_NOC0 = {{8, 2}};
まとめる
下記のようになり、かなりすっきりしました。

NoC は?
各PEなどを接続する NoC は、Arteris の FlexNoc を使っているようです。
この FlexNoC は、AXI, AHB, APB, OCP, PIF, AMBA5 なので、Blackhole の各PEは、AXI で接続されているのでしょうか?
おわりに
ぱっと見、左と右の2組があうように見えますね。実態はどうなのでしょうか?