以前書いたブログだが、
IPCが2命令多ければ、RISC系CPUの周波数当たり性能はx86のと並ぶ - 一人一党党
https://abo-junghichi.hatenablog.jp/entry/2020/07/03/013148
AMD Zen3からは事情が変わっているようだ。
それまでのx86 CPUではサイクル当たりメモリアクセス数は2回が限度だったのが、先のブログでも世話になった、x86のCPUの構造解析で有名なAgner Fog氏によると、AMD Zen3からは3回、現時点でAMD最新のCPUであるZen5では4回のメモリアクセスが可能らしい。
Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs
https://www.agner.org/optimize/instruction_tables.pdf
先のブログを書いた時には、メモリアクセス数が増えるとは私は思わなかった。
CPUサイクル当たり演算処理をひとつ増やすにはトランジスタや配線などの資源を一定量追加すれば済むが、メモリアクセスをひとつ増やすには一定量の資源を(L1データキャッシュの)メモリセル毎に追加しなければならないからだ。
正確には「セル毎の資源量 = address配線 × (read配線 + write配線)」であり、既に実装したメモリアクセス数に比例した資源を追加しなければならない。
コンピュータアーキテクチャの話(125) マルチポートレジスタ(1) | TECH+(テックプラス)
https://news.mynavi.jp/techplus/article/architecture-125/
Zen 2まででは「最大アクセス2回 × (read 2回 + write 1回) = 6単位」のところ、Zen 5となると「最大アクセス4回 × (read 4回 + write 2回) = 24単位」であり、同量のL1データキャッシュを実装するのにZen 5はZen 2の4倍の資源を費やしているはず。
なのに、Zen 5のL1データキャッシュ量はZen 2の1.5倍。凄い。