ニアメモリ処理アーキテクチャのプロトタイピングシステムの開発
枝元 正寛 (1451020)
単一チップに許容される電力がプロセッサの性能向上の足かせになりつつある.
今後,半導体プロセス技術が発展すると,演算に要するエネルギーよりもデータ移動に要するエネルギーが大きくなると考えられる.
一般的なCPU では,演算を行う場合,データを主記憶からインターコネクトおよびキャッシュメモリを介して演算コアまで移動する必要があるため,データ移動に要する電力はその移動距離に伴い増加すると考えられる.
そこで,主記憶の近くに演算機を配置し演算を行うニアメモリ処理が提案されている.
これは,メモリコントローラおよびI/O インターフェースに演算を行うため,メモリバンド幅の劣化をすることなく,レイテンシを削減できると考えられる.
一般のCPU での実行とは異なり,キャッシュメモリを介したデータの一貫性管理外に演算機を追加するために,これまでとは異なるシステムソフトウェアおよびプログラミングモデルによる,データの管理が必要である.
また,マイクロアーキテクチャの構成が明らかでないため,様々な構成を検証できるシステムが必要である.
プロセッサアーキテクチャの評価には一般的にはソフトウェアによるシミュレータが用いられる.
しかし,シミュレーション速度が低速であるため,より高速な検証環境が求められている.
より高速にアーキテクチャ検証と評価を行う方法として,FPGA を用いたプロトタイピングシステム開発が一般的である.本研究で
は,ニアメモリ処理アーキテクチャ,システムソフトウェア,プログラミングモ
デルおよび FPGA を包括的に検討するプロトタイピングシステムを提案す
る.ARMプロセッサを搭載するFPGA 上にMIPS ISA を持つインオーダコアとメモ
リシステムおよび制御機構をニアメモリ処理アーキテクチャとして実装し
た.ARMプロセッサとFPGA は異なるメモリ領域を扱うため,同じ物理メモリ領域
を使用するデータの共有を行うことで,ホストCPU との協調実行を可能とした.
また,ニアメモリ処理のオフロード箇所をプログラマが明示的に記述できるプロ
グラミングモデルを実現した. 提案したニアメモリ処理API を使用して,評価用
プログラムを作成し評価した.その結果,プログラムが規則的なメモリアクセス
パターンの場合,今回の構成における協調実行は,ホスト CPU 単体実行に比べ
て,2.7~4.7 倍低速であった.ホストCPUが命令の発行幅とアウト・オブ・オー
ダ実行による高いメモリバンド幅を達成する構成であるのに対し,ニアメモリ処
理アーキテ クチャでは,シングルイシューとインオーダ実行であるためメモリ
バンド幅の活用ができなかった.このためメモリバンド幅の再現には,3 倍程度
の命令発行幅や演算機の追加が必要であることを確認した.一方,今度より重要
となる不規則なメモリアクセスパターンの場合は,最大1.16 倍の速度を達成し
た.これより,提案システムはデータ移動距離の差によるレイテンシの再現性は
高いことを確認できた.