FPGA開発日記

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

"Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution" を読んでみる(1)

ISCA 2024で発表された「Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Instruction Execution」という論文を読んでみることにする。

arxiv.org

どうやら Best Paper Awardはこの論文がとったらしい。

イントロダクションからまとめていく。時間が無いので少しずつ。


Abstract

ロード命令は、現代のプロセッサにおいて命令レベルの並列性(ILP)を制限する主要な要因の一つである。 従来の技術であるロード値予測(LVP)やメモリリネーミング(MRN)は、データ依存を軽減できるものの、リソース依存の軽減には至っていない。 本研究では、ロード命令の実行を安全に排除することによって、データ依存とリソース依存の両方を軽減し、ILPを向上させる新しい手法「Constable」を提案する。 Constableは、繰り返し同じデータを同じアドレスから取得するロード命令を動的に特定し、これらの命令の実行を排除することで、平均で5.1%の性能向上と3.4%の電力消費削減を達成した。 また、2-way同時マルチスレッディング環境下では、性能向上は8.8%に達した。

Introduction

現代の高性能プロセッサの設計において、命令レベルの並列性(ILP)を高めることが不可欠である。 しかし、ILPはデータ依存とリソース依存によって制限されることが多く、特にロード命令はこの制限の主要な原因となっている。 ロード命令はアドレス計算とデータ取得という二つの操作を行うため、非メモリ命令よりも長い遅延が発生する。 このため、ロード命令に依存する命令はしばしば複数サイクルの遅延を引き起こし、ILPを制限する。

従来の技術であるロード値予測(LVP)とメモリリネーミング(MRN)は、データ依存を軽減するためにデータ値を予測し、推測実行を行うことでILPを向上させる。 しかし、これらの技術は予測されたロード命令を実行する必要があり、これによりハードウェアリソースが消費され、リソース依存の軽減にはつながらない。

本研究では、ロード命令のデータ依存とリソース依存の両方を軽減する新しい手法「Constable」を提案する。 Constableは、繰り返し同じデータを同じアドレスから取得する「安定的ロード命令」を動的に特定し、これらの命令の実行を排除する。 これにより、パイプラインリソースを他の命令実行に再利用できるようになり、全体的な性能向上と電力消費の削減を実現する。