Cube-view: HBM pseudo channel ports on edges, UCIe flush to cube border
- HBM pseudo channel ports split to top/bottom edges of HBM zone (32 ports each, 8 per PE, color-coded) - PE→HBM lines connect router to its port group center - Per-PE label: "PE0×8ch" with BW annotation - UCIe blocks flush against cube edges at router positions - UCIe blocks smaller (22×10px) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+159
-176
@@ -7,71 +7,78 @@
|
||||
<rect x="260" y="285" width="450" height="250" rx="6" fill="#052e16" stroke="#047857" stroke-width="2" opacity="0.6"/>
|
||||
<text x="485" y="395" text-anchor="middle" font-family="monospace" font-size="11" font-weight="bold" fill="#047857">HBM_CTRL | 64 pseudo channels</text>
|
||||
<text x="485" y="412" text-anchor="middle" font-family="monospace" font-size="9" fill="#05966988">Total BW: 2048 GB/s</text>
|
||||
<rect x="285.0" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="291.2" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="297.5" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="303.8" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="310.0" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="316.2" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="322.5" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="328.8" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
|
||||
<rect x="335.0" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="341.2" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="347.5" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="353.8" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="360.0" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="366.2" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="372.5" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="378.8" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
|
||||
<rect x="385.0" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="391.2" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="397.5" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="403.8" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="410.0" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="416.2" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="422.5" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="428.8" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
|
||||
<rect x="435.0" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="441.2" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="447.5" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="453.8" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="460.0" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="466.2" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="472.5" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="478.8" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
|
||||
<rect x="485.0" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="491.2" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="497.5" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="503.8" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="510.0" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="516.2" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="522.5" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="528.8" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
|
||||
<rect x="535.0" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="541.2" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="547.5" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="553.8" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="560.0" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="566.2" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="572.5" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="578.8" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
|
||||
<rect x="585.0" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="591.2" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="597.5" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="603.8" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="610.0" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="616.2" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="622.5" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="628.8" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
|
||||
<rect x="635.0" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="641.2" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="647.5" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="653.8" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="660.0" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="666.2" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="672.5" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<rect x="678.8" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
|
||||
<text x="485" y="445" text-anchor="middle" font-family="monospace" font-size="7" fill="#05966988">64 ports | 8 per PE (color-coded)</text>
|
||||
<rect x="270.0" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="283.4" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="296.9" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="310.3" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="323.8" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="337.2" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="350.6" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="364.1" y="289" width="12.9" height="8" rx="1" fill="#3b82f6" opacity="0.8"/>
|
||||
<rect x="377.5" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="390.9" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="404.4" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="417.8" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="431.2" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="444.7" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="458.1" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="471.6" y="289" width="12.9" height="8" rx="1" fill="#60a5fa" opacity="0.8"/>
|
||||
<rect x="485.0" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="498.4" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="511.9" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="525.3" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="538.8" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="552.2" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="565.6" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="579.1" y="289" width="12.9" height="8" rx="1" fill="#8b5cf6" opacity="0.8"/>
|
||||
<rect x="592.5" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="605.9" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="619.4" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="632.8" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="646.2" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="659.7" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="673.1" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<rect x="686.6" y="289" width="12.9" height="8" rx="1" fill="#a78bfa" opacity="0.8"/>
|
||||
<text x="324" y="286" text-anchor="middle" font-family="monospace" font-size="6" fill="#3b82f6">PE0×8ch</text>
|
||||
<text x="431" y="286" text-anchor="middle" font-family="monospace" font-size="6" fill="#60a5fa">PE1×8ch</text>
|
||||
<text x="539" y="286" text-anchor="middle" font-family="monospace" font-size="6" fill="#8b5cf6">PE2×8ch</text>
|
||||
<text x="646" y="286" text-anchor="middle" font-family="monospace" font-size="6" fill="#a78bfa">PE3×8ch</text>
|
||||
<rect x="270.0" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="283.4" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="296.9" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="310.3" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="323.8" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="337.2" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="350.6" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="364.1" y="523" width="12.9" height="8" rx="1" fill="#f59e0b" opacity="0.8"/>
|
||||
<rect x="377.5" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="390.9" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="404.4" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="417.8" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="431.2" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="444.7" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="458.1" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="471.6" y="523" width="12.9" height="8" rx="1" fill="#fbbf24" opacity="0.8"/>
|
||||
<rect x="485.0" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="498.4" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="511.9" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="525.3" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="538.8" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="552.2" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="565.6" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="579.1" y="523" width="12.9" height="8" rx="1" fill="#ef4444" opacity="0.8"/>
|
||||
<rect x="592.5" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="605.9" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="619.4" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="632.8" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="646.2" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="659.7" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="673.1" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<rect x="686.6" y="523" width="12.9" height="8" rx="1" fill="#f87171" opacity="0.8"/>
|
||||
<text x="324" y="539" text-anchor="middle" font-family="monospace" font-size="6" fill="#f59e0b">PE4×8ch</text>
|
||||
<text x="431" y="539" text-anchor="middle" font-family="monospace" font-size="6" fill="#fbbf24">PE5×8ch</text>
|
||||
<text x="539" y="539" text-anchor="middle" font-family="monospace" font-size="6" fill="#ef4444">PE6×8ch</text>
|
||||
<text x="646" y="539" text-anchor="middle" font-family="monospace" font-size="6" fill="#f87171">PE7×8ch</text>
|
||||
<line x1="135" y1="135" x2="285" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
|
||||
<line x1="135" y1="135" x2="135" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
|
||||
<line x1="285" y1="135" x2="435" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
|
||||
@@ -129,44 +136,42 @@
|
||||
<rect x="83" y="107" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="99" y="118" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE0</text>
|
||||
<line x1="99" y1="123" x2="135" y2="127" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="24" y="127" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="40" y="138" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c0</text>
|
||||
<line x1="56" y1="135" x2="127" y2="135" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="155" y="40" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="171" y="51" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c0</text>
|
||||
<line x1="171" y1="56" x2="135" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="149" y="214" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="38" y="130" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="49" y="138" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c0</text>
|
||||
<line x1="60" y1="135" x2="127" y2="135" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="124" y="50" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="135" y="58" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c0</text>
|
||||
<line x1="135" y1="60" x2="135" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="135" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="285" y="138" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r0c1</text>
|
||||
<rect x="251" y="107" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="267" y="118" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE1</text>
|
||||
<line x1="267" y1="123" x2="285" y2="127" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="287" y="40" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="303" y="51" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c1</text>
|
||||
<line x1="303" y1="56" x2="285" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="299" y="214" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="261" y="113" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="272" y="121" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE1</text>
|
||||
<line x1="272" y1="123" x2="285" y2="127" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="274" y="50" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="285" y="58" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c1</text>
|
||||
<line x1="285" y1="60" x2="285" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="435" cy="135" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="435" y="138" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r0c2</text>
|
||||
<circle cx="585" cy="135" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="585" y="138" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r0c3</text>
|
||||
<circle cx="685" cy="135" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="685" y="138" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r0c4</text>
|
||||
<rect x="669" y="40" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="685" y="51" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c2</text>
|
||||
<line x1="685" y1="56" x2="685" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="674" y="50" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="685" y="58" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c2</text>
|
||||
<line x1="685" y1="60" x2="685" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="835" cy="135" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="835" y="138" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r0c5</text>
|
||||
<rect x="914" y="109" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="930" y="120" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c0</text>
|
||||
<line x1="914" y1="117" x2="843" y2="135" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="837" y="40" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="853" y="51" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c3</text>
|
||||
<line x1="853" y1="56" x2="835" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="910" y="130" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="921" y="138" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c0</text>
|
||||
<line x1="910" y1="135" x2="843" y2="135" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="824" y="50" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="835" y="58" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-N.c3</text>
|
||||
<line x1="835" y1="60" x2="835" y2="127" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="135" cy="260" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="135" y="263" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r1c0</text>
|
||||
<rect x="24" y="252" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="40" y="263" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c1</text>
|
||||
<line x1="56" y1="260" x2="127" y2="260" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="38" y="255" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="49" y="263" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c1</text>
|
||||
<line x1="60" y1="260" x2="127" y2="260" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="260" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="285" y="263" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r1c1</text>
|
||||
<circle cx="435" cy="260" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
@@ -175,23 +180,21 @@
|
||||
<text x="585" y="263" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r1c3</text>
|
||||
<circle cx="685" cy="260" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="685" y="263" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r1c4</text>
|
||||
<rect x="669" y="232" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="685" y="243" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE2</text>
|
||||
<rect x="674" y="238" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="685" y="246" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE2</text>
|
||||
<line x1="685" y1="248" x2="685" y2="252" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<text x="699" y="276" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<circle cx="835" cy="260" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="835" y="263" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r1c5</text>
|
||||
<rect x="801" y="232" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="817" y="243" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE3</text>
|
||||
<line x1="817" y1="248" x2="835" y2="252" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="914" y="270" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="930" y="281" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c1</text>
|
||||
<line x1="914" y1="278" x2="843" y2="260" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="849" y="276" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="811" y="238" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="822" y="246" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE3</text>
|
||||
<line x1="822" y1="248" x2="835" y2="252" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="910" y="255" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="921" y="263" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c1</text>
|
||||
<line x1="910" y1="260" x2="843" y2="260" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="135" cy="335" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="135" y="338" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r2c0</text>
|
||||
<rect x="89" y="327" width="32" height="16" rx="3" fill="#451a03" stroke="#f59e0b" stroke-width="1"/>
|
||||
<text x="105" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#f59e0b">M_CPU</text>
|
||||
<rect x="99" y="330" width="22" height="10" rx="3" fill="#451a03" stroke="#f59e0b" stroke-width="1"/>
|
||||
<text x="110" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#f59e0b">M_CPU</text>
|
||||
<line x1="121" y1="335" x2="127" y2="335" stroke="#f59e0b" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="335" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="285" y="338" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r2c1</text>
|
||||
@@ -201,8 +204,8 @@
|
||||
<text x="835" y="338" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r2c5</text>
|
||||
<circle cx="135" cy="485" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="135" y="488" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r3c0</text>
|
||||
<rect x="89" y="477" width="32" height="16" rx="3" fill="#1c1917" stroke="#d97706" stroke-width="1"/>
|
||||
<text x="105" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#d97706">SRAM</text>
|
||||
<rect x="99" y="480" width="22" height="10" rx="3" fill="#1c1917" stroke="#d97706" stroke-width="1"/>
|
||||
<text x="110" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#d97706">SRAM</text>
|
||||
<line x1="121" y1="485" x2="127" y2="485" stroke="#d97706" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="485" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="285" y="488" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r3c1</text>
|
||||
@@ -212,19 +215,17 @@
|
||||
<text x="835" y="488" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r3c5</text>
|
||||
<circle cx="135" cy="560" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="135" y="563" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r4c0</text>
|
||||
<rect x="101" y="572" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="117" y="583" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE4</text>
|
||||
<line x1="117" y1="572" x2="135" y2="568" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="24" y="570" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="40" y="581" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c2</text>
|
||||
<line x1="56" y1="578" x2="127" y2="560" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="149" y="544" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="111" y="572" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="122" y="580" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE4</text>
|
||||
<line x1="122" y1="572" x2="135" y2="568" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="38" y="555" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="49" y="563" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c2</text>
|
||||
<line x1="60" y1="560" x2="127" y2="560" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="560" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="285" y="563" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r4c1</text>
|
||||
<rect x="269" y="572" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="285" y="583" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE5</text>
|
||||
<rect x="274" y="572" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="285" y="580" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE5</text>
|
||||
<line x1="285" y1="572" x2="285" y2="568" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<text x="299" y="544" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<circle cx="435" cy="560" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="435" y="563" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r4c2</text>
|
||||
<circle cx="585" cy="560" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
@@ -233,79 +234,61 @@
|
||||
<text x="685" y="563" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r4c4</text>
|
||||
<circle cx="835" cy="560" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="835" y="563" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r4c5</text>
|
||||
<rect x="914" y="552" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="930" y="563" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c2</text>
|
||||
<line x1="914" y1="560" x2="843" y2="560" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="910" y="555" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="921" y="563" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c2</text>
|
||||
<line x1="910" y1="560" x2="843" y2="560" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="135" cy="685" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="135" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c0</text>
|
||||
<rect x="24" y="659" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="40" y="670" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c3</text>
|
||||
<line x1="56" y1="667" x2="127" y2="685" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="137" y="764" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="153" y="775" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c0</text>
|
||||
<line x1="153" y1="764" x2="135" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="38" y="680" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="49" y="688" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-W.c3</text>
|
||||
<line x1="60" y1="685" x2="127" y2="685" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="124" y="760" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="135" y="768" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c0</text>
|
||||
<line x1="135" y1="760" x2="135" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="285" cy="685" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="285" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c1</text>
|
||||
<rect x="269" y="764" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="285" y="775" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c1</text>
|
||||
<line x1="285" y1="764" x2="285" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="274" y="760" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="285" y="768" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c1</text>
|
||||
<line x1="285" y1="760" x2="285" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="435" cy="685" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="435" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c2</text>
|
||||
<circle cx="585" cy="685" r="8" fill="#334155" stroke="#475569" stroke-width="1"/>
|
||||
<text x="585" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c3</text>
|
||||
<circle cx="685" cy="685" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="685" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c4</text>
|
||||
<rect x="651" y="697" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="667" y="708" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE6</text>
|
||||
<line x1="667" y1="697" x2="685" y2="693" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="687" y="764" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="703" y="775" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c2</text>
|
||||
<line x1="703" y1="764" x2="685" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="699" y="606" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="661" y="697" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="672" y="705" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE6</text>
|
||||
<line x1="672" y1="697" x2="685" y2="693" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="674" y="760" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="685" y="768" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c2</text>
|
||||
<line x1="685" y1="760" x2="685" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<circle cx="835" cy="685" r="8" fill="#475569" stroke="#64748b" stroke-width="1"/>
|
||||
<text x="835" y="688" text-anchor="middle" font-family="monospace" font-size="6" fill="white">r5c5</text>
|
||||
<rect x="783" y="697" width="32" height="16" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="799" y="708" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE7</text>
|
||||
<line x1="799" y1="697" x2="835" y2="693" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="914" y="677" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="930" y="688" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c3</text>
|
||||
<line x1="914" y1="685" x2="843" y2="685" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="855" y="764" width="32" height="16" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="871" y="775" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c3</text>
|
||||
<line x1="871" y1="764" x2="835" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<text x="849" y="606" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="135" y1="143" x2="240" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="143" x2="345" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="435" y1="143" x2="450" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="585" y1="143" x2="555" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="143" x2="625" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="143" x2="730" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="135" y1="268" x2="240" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="268" x2="345" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="435" y1="268" x2="450" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="585" y1="268" x2="555" y2="285" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="268" x2="625" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="268" x2="730" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="135" y1="327" x2="240" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="327" x2="345" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="327" x2="625" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="327" x2="730" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="135" y1="477" x2="240" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="477" x2="345" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="477" x2="625" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="477" x2="730" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="135" y1="552" x2="240" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="552" x2="345" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="435" y1="552" x2="450" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="585" y1="552" x2="555" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="552" x2="625" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="552" x2="730" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="135" y1="677" x2="240" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="285" y1="677" x2="345" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="435" y1="677" x2="450" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="585" y1="677" x2="555" y2="535" stroke="#10b981" stroke-width="0.7" opacity="0.15" stroke-dasharray="4,3"/>
|
||||
<line x1="685" y1="677" x2="625" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<line x1="835" y1="677" x2="730" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<rect x="798" y="697" width="22" height="10" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
|
||||
<text x="809" y="705" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="#a855f7">PE7</text>
|
||||
<line x1="809" y1="697" x2="835" y2="693" stroke="#a855f7" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="910" y="680" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="921" y="688" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-E.c3</text>
|
||||
<line x1="910" y1="685" x2="843" y2="685" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<rect x="824" y="760" width="22" height="10" rx="3" fill="#1e1b4b" stroke="#8b5cf6" stroke-width="1"/>
|
||||
<text x="835" y="768" text-anchor="middle" font-family="monospace" font-size="6" font-weight="bold" fill="#8b5cf6">UCIe-S.c3</text>
|
||||
<line x1="835" y1="760" x2="835" y2="693" stroke="#8b5cf6" stroke-width="1" opacity="0.6"/>
|
||||
<line x1="135" y1="143" x2="324" y2="289" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="239" y="216" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="285" y1="143" x2="431" y2="289" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="368" y="216" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="685" y1="268" x2="539" y2="289" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="622" y="278" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="835" y1="268" x2="646" y2="289" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="751" y="278" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="135" y1="552" x2="324" y2="531" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="239" y="542" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="285" y1="552" x2="431" y2="531" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="368" y="542" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="685" y1="677" x2="539" y2="531" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="622" y="604" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<line x1="835" y1="677" x2="646" y2="531" stroke="#10b981" stroke-width="1.5" opacity="0.6" stroke-dasharray="4,3"/>
|
||||
<text x="751" y="604" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
|
||||
<rect x="60" y="865" width="10" height="10" rx="2" fill="#3b82f6" stroke="#475569" stroke-width="0.5"/>
|
||||
<text x="74" y="874" font-family="monospace" font-size="8" fill="#94a3b8">PE Router</text>
|
||||
<rect x="147" y="865" width="10" height="10" rx="2" fill="#f59e0b" stroke="#475569" stroke-width="0.5"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 30 KiB |
@@ -468,30 +468,53 @@ def _render_cube_view_svg(view: ViewGraph, spec: dict) -> str:
|
||||
f'Total BW: {total_ch * channel_bw:.0f} GB/s</text>'
|
||||
)
|
||||
|
||||
# ── Pseudo channel port indicators (horizontal bar inside HBM zone) ──
|
||||
port_bar_y = hcy + 15
|
||||
port_bar_w = 8.0 * scale # slightly narrower than HBM zone
|
||||
port_bar_x = hcx - port_bar_w / 2
|
||||
port_w = port_bar_w / total_ch
|
||||
for i in range(total_ch):
|
||||
pe_owner = i // channels_per_pe
|
||||
# Color by PE owner
|
||||
colors = ["#3b82f6", "#60a5fa", "#8b5cf6", "#a78bfa",
|
||||
# ── Pseudo channel ports on HBM top/bottom edges ──
|
||||
# Top edge: 32 ports (PE0..PE3, 8 each), Bottom edge: 32 ports (PE4..PE7)
|
||||
half_ch = total_ch // 2
|
||||
pes_per_half = half_ch // channels_per_pe # 4 PEs per half
|
||||
port_bar_w = hbm_w - 20 # slightly narrower than HBM zone
|
||||
port_w = port_bar_w / half_ch
|
||||
port_h = 8
|
||||
pe_colors = ["#3b82f6", "#60a5fa", "#8b5cf6", "#a78bfa",
|
||||
"#f59e0b", "#fbbf24", "#ef4444", "#f87171"]
|
||||
c = colors[pe_owner % len(colors)]
|
||||
px = port_bar_x + i * port_w
|
||||
|
||||
for half_idx, (edge_y, pe_start) in enumerate([
|
||||
(hbm_y + 4, 0), # top edge, PE0-PE3
|
||||
(hbm_y + hbm_h - port_h - 4, pes_per_half), # bottom edge, PE4-PE7
|
||||
]):
|
||||
bar_x = hbm_x + 10
|
||||
for i in range(half_ch):
|
||||
pe_owner = pe_start + i // channels_per_pe
|
||||
c = pe_colors[pe_owner % len(pe_colors)]
|
||||
px = bar_x + i * port_w
|
||||
parts.append(
|
||||
f' <rect x="{px:.1f}" y="{port_bar_y:.0f}" '
|
||||
f'width="{max(port_w - 0.5, 1):.1f}" height="8" '
|
||||
f'fill="{c}" opacity="0.7"/>'
|
||||
f' <rect x="{px:.1f}" y="{edge_y:.0f}" '
|
||||
f'width="{max(port_w - 0.5, 1):.1f}" height="{port_h}" '
|
||||
f'rx="1" fill="{c}" opacity="0.8"/>'
|
||||
)
|
||||
# Port bar label
|
||||
# Per-PE group labels
|
||||
for p in range(pes_per_half):
|
||||
gx = bar_x + (p * channels_per_pe + channels_per_pe / 2) * port_w
|
||||
label_y = edge_y - 3 if half_idx == 0 else edge_y + port_h + 8
|
||||
parts.append(
|
||||
f' <text x="{hcx:.0f}" y="{port_bar_y + 20:.0f}" text-anchor="middle" '
|
||||
f'font-family="monospace" font-size="7" fill="#05966988">'
|
||||
f'{total_ch} ports | {channels_per_pe} per PE (color-coded)</text>'
|
||||
f' <text x="{gx:.0f}" y="{label_y:.0f}" text-anchor="middle" '
|
||||
f'font-family="monospace" font-size="6" fill="{pe_colors[(pe_start + p) % len(pe_colors)]}">'
|
||||
f'PE{pe_start + p}×{channels_per_pe}ch</text>'
|
||||
)
|
||||
|
||||
# Store port group centers for PE→HBM connection lines (used later)
|
||||
_pe_hbm_targets: dict[int, tuple[float, float]] = {}
|
||||
for half_idx, (edge_y, pe_start) in enumerate([
|
||||
(hbm_y + 4, 0),
|
||||
(hbm_y + hbm_h - port_h - 4, pes_per_half),
|
||||
]):
|
||||
bar_x = hbm_x + 10
|
||||
for p in range(pes_per_half):
|
||||
pe_id = pe_start + p
|
||||
gx = bar_x + (p * channels_per_pe + channels_per_pe / 2) * port_w
|
||||
gy = edge_y if half_idx == 0 else edge_y + port_h
|
||||
_pe_hbm_targets[pe_id] = (gx, gy)
|
||||
|
||||
# ── Router mesh links ──
|
||||
for r in range(n_rows):
|
||||
for c in range(n_cols):
|
||||
@@ -589,20 +612,27 @@ def _render_cube_view_svg(view: ViewGraph, spec: dict) -> str:
|
||||
offset_x = (bi - (len(blocks) - 1) / 2) * (blk_w + 4)
|
||||
|
||||
if kind == "ucie":
|
||||
# UCIe: place at cube edge direction
|
||||
# UCIe: place flush against cube edge at router position
|
||||
direction = label.split("-")[1].split(".")[0] if "-" in label else ""
|
||||
ucie_w, ucie_h = 22, 10 # smaller blocks for UCIe ports
|
||||
if direction == "N":
|
||||
bx, by = px + offset_x - blk_w / 2, pad - blk_h - 4
|
||||
bx = px - ucie_w / 2
|
||||
by = pad - ucie_h # flush against top edge
|
||||
blk_w, blk_h = ucie_w, ucie_h
|
||||
elif direction == "S":
|
||||
by_base = pad + cube_h * scale
|
||||
bx, by = px + offset_x - blk_w / 2, by_base + 4
|
||||
bx = px - ucie_w / 2
|
||||
by = pad + cube_h * scale # flush against bottom edge
|
||||
blk_w, blk_h = ucie_w, ucie_h
|
||||
elif direction == "W":
|
||||
bx, by = pad - blk_w - 4, py + offset_x - blk_h / 2
|
||||
bx = pad - ucie_w # flush against left edge
|
||||
by = py - ucie_h / 2
|
||||
blk_w, blk_h = ucie_w, ucie_h
|
||||
elif direction == "E":
|
||||
bx_base = pad + cube_w * scale
|
||||
bx, by = bx_base + 4, py + offset_x - blk_h / 2
|
||||
bx = pad + cube_w * scale # flush against right edge
|
||||
by = py - ucie_h / 2
|
||||
blk_w, blk_h = ucie_w, ucie_h
|
||||
else:
|
||||
bx, by = px + offset_x - blk_w / 2, py - r_size - blk_h - 4
|
||||
bx, by = px - blk_w / 2, py - r_size - blk_h - 4
|
||||
elif kind in ("mcpu", "sram"):
|
||||
# M_CPU/SRAM: place to the left of router (avoid mesh overlap)
|
||||
bx = px - r_size - blk_w - 6
|
||||
@@ -672,40 +702,38 @@ def _render_cube_view_svg(view: ViewGraph, spec: dict) -> str:
|
||||
f'stroke="{style["stroke"]}" stroke-width="1" opacity="0.6"/>'
|
||||
)
|
||||
|
||||
# ── PE router → HBM BW annotation ──
|
||||
if pe_items:
|
||||
pe_hbm_edge = hbm_y if py < hbm_y else hbm_y + hbm_h
|
||||
pe_r_edge = py + r_size if py < hbm_y else py - r_size
|
||||
bw_x = px + 14
|
||||
bw_y = (pe_r_edge + pe_hbm_edge) / 2
|
||||
parts.append(
|
||||
f' <text x="{bw_x:.0f}" y="{bw_y:.0f}" '
|
||||
f'font-family="monospace" font-size="6" fill="#10b98188">'
|
||||
f'{agg_bw:.0f}GB/s</text>'
|
||||
)
|
||||
# (PE→HBM BW annotation drawn in the PE→HBM port group section above)
|
||||
|
||||
# ── Router → HBM_CTRL lines (drawn last, on top of everything) ──
|
||||
# Lines go from router to the HBM zone edge, angled toward HBM center
|
||||
# to visually distinguish from vertical mesh links
|
||||
# ── PE Router → HBM pseudo channel port group lines ──
|
||||
# Each PE router connects to its port group center on the HBM edge
|
||||
for rkey, rval in routers.items():
|
||||
if rval is None:
|
||||
continue
|
||||
attach = rval.get("attach", [])
|
||||
pe_dma_items = [a for a in attach if a.endswith(".dma")]
|
||||
if not pe_dma_items:
|
||||
continue
|
||||
pe_id = int(pe_dma_items[0].split(".")[0].replace("pe", ""))
|
||||
if pe_id not in _pe_hbm_targets:
|
||||
continue
|
||||
rx, ry = rval["pos_mm"]
|
||||
px, py = mm2px(rx, ry)
|
||||
hbm_edge_y = hbm_y if py < hbm_y else hbm_y + hbm_h
|
||||
r_edge_y = py + r_size if py < hbm_y else py - r_size
|
||||
if abs(r_edge_y - hbm_edge_y) > 10:
|
||||
has_pe = any(a.endswith(".dma") for a in rval.get("attach", []))
|
||||
sw = "1.5" if has_pe else "0.7"
|
||||
op = "0.6" if has_pe else "0.15"
|
||||
# Angle toward HBM center x (hcx) — slight offset, not fully straight
|
||||
dx = (hcx - px) * 0.3 # 30% pull toward center
|
||||
rpx, rpy = mm2px(rx, ry)
|
||||
tgx, tgy = _pe_hbm_targets[pe_id]
|
||||
r_edge_y = rpy + r_size if rpy < hbm_y else rpy - r_size
|
||||
parts.append(
|
||||
f' <line x1="{px:.0f}" y1="{r_edge_y:.0f}" '
|
||||
f'x2="{px + dx:.0f}" y2="{hbm_edge_y:.0f}" '
|
||||
f'stroke="#10b981" stroke-width="{sw}" opacity="{op}" '
|
||||
f' <line x1="{rpx:.0f}" y1="{r_edge_y:.0f}" '
|
||||
f'x2="{tgx:.0f}" y2="{tgy:.0f}" '
|
||||
f'stroke="#10b981" stroke-width="1.5" opacity="0.6" '
|
||||
f'stroke-dasharray="4,3"/>'
|
||||
)
|
||||
# BW annotation at midpoint
|
||||
mx = (rpx + tgx) / 2 + 10
|
||||
my = (r_edge_y + tgy) / 2
|
||||
parts.append(
|
||||
f' <text x="{mx:.0f}" y="{my:.0f}" '
|
||||
f'font-family="monospace" font-size="6" fill="#10b98188">'
|
||||
f'{agg_bw:.0f}GB/s</text>'
|
||||
)
|
||||
|
||||
# ── Legend ──
|
||||
ly = h_px - 35
|
||||
|
||||
Reference in New Issue
Block a user