FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(3. 命令デコード)

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。

github.com

せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、資料を切り貼りしながらブログに乗せていくことにした。


  • マイクロオペレーション命令について
    • 命令はマイクロオペレーションに分解される。
f:id:msyksphinz:20200328110756p:plain
  • 複数命令に分解される命令
    • 例:ADD(shifted register)
    • 加算とシフトに分解される。
f:id:msyksphinz:20200328111126p:plain
  • MOVPREFIX命令は直後の命令の修飾を行うModification命令。これは命令のパッキングを行う。
f:id:msyksphinz:20200328111228p:plain
  • 命令デコードステージ。
    • プリデコード / PD1 / PD2 / PD3 / D ステージで構成される。
f:id:msyksphinz:20200328111342p:plain
f:id:msyksphinz:20200328111432p:plain
  • 命令デコードはD / DTステージで行われる。
    • GID(Group ID) / CSE / 物理レジスタ / VFP / VSPなど割り当てが行われる。
f:id:msyksphinz:20200328111551p:plain
  • 命令コミット
    • CSE(Commit Stack Entry)は4エントリでまとめられる。
    • 同じGIDのuOPは同時にコミットが可能。
f:id:msyksphinz:20200328111936p:plain
  • パイプラインフラッシュ
    • 命令がコミットステージで破棄される場合、パイプラインフラッシュが発生する。
f:id:msyksphinz:20200328112136p:plain