Thesis or Dissertation レジスタ書込ポート予測を用いた小面積レジスタファイルの研究

川島, 弘晃

2016 , 三重大学
Description
高性能なアウトオブオーダー(out-of-order: OoO) 型スーパースカラプロセッサ,すなわち複数の命令を同時にロードし,依存の無い命令を同時に実行するプロセッサは,多ポートのレジスタファイルが必要不可欠となっている.一般にレジスタファイルを構成するSRAMの回路面積はポート数の2乗に比例するためレジスタファイルはその容量のわりに非常に大きな面積を占める.回路面積の増大は,チップ製造コストだけではなく,アクセスタイム及び,消費電力の増大につながる.しかし,近年の物理レジスタ方式のOoOスーパースカラプロセッサは,より高い性能を達成するために命令ウィンドウサイズや同時発行命令数を増加させる傾向にあり,より多ポートのレジスタファイルを必要としている.本研究では,FPGAや安価なASICの設計フロー上でOoOスーパースカラプロセッサを実装することを想定しているが,そのような設計フローでは多ポートのマルチポートメモリを実装することは非常に困難である.そこで,リードポート・ライトポートを1つずつ持つSRAMを多重化して多ポートのメモリを作成する手法が広く用いられている.しかし,SRAMの多重化手法は多ポートのメモリになるほど大量のSRAMを必要とする傾向があるためレジスタファイルのような多ポートのメモリは多重化によるオーバーヘッドが非常に大きい.このオーバーヘッドを減らす方法の一つとしてバンクメモリが挙げられる.バンクメモリとは,2つもしくはそれ以上の領域にデータを分割し,管理するメモリのことであり,この領域1つ分のことをバンクと呼ぶ.バンクメモリは,1つのバンクに複数のメモリアクセスが集中しないかぎりマルチポートメモリを等価な働きをすることができる.しかし,複数のメモリアクセスが同一バンクに集中すると競合が発生し,メモリアクセスを1つずつ処理しなければならず性能が低下してしまう.この競合をバンクコンフリクトと言う.レジスタファイルにバンクメモリを適用した場合,バンクコンフリクトが発生すると次の命令が演算できずに性能が大きく低下する危険性がある.一般に高性能プロセッサでは,命令実行の並列性を高めるためにレジスタ番号を動的にリネームする.バンク型レジスタファイルを最も単純に実装する場合,同時にリネームされた命令の書込先にそれぞれ異なるバンクを割り当てるような実装になるが,実際には命令の実行サイクル数が異なっていたり,先行する命令との依存関係により実行タイミングがずれるため,バンクコンフリクトの発生回数を大きく低減することはできない.そこで本研究は,バンクコンフリクトによる性能低下を改善するためレジスタ書込ポート予測を提案する.これは,同時にリネームされる命令列の依存関係に着目し,同時にリネームされるが,同時には実行できない命令の書込先バンク番号を記憶する.記憶したバンク番号をもとに次の命令列の書込先バンクを割り当てることによりバンクコンフリクトの回避を狙う.また本研究は,提案する予測機構をHDLで詳細設計した上で評価を行った.評価結果によると,書込予測を使用しないバンクレジスタファイルよりも予測を用いた方がベンチマークプログラムの実行時間を最大3.9%,平均0.8%減少させることに成功した.また,予測機構実装を実装したプロセッサの消費電力を11.11%削減し,レジスタファイルの面積を77.6%,アクセスタイムを8.3%削減することができた.$$A large multi-port register file is an indispensable component to achieve higher computing performance, especially in recent out-of-order superscalar processors which fetches multiple instructions and execute multiple instructions in one cycle. The number of SRAMs ports effects to not only fabrication cost of a VLSI chip but also circuit scale, access latency and power consumption significantly. Although those reasons, recent superscalar processors require a larger multi-port register file to achieve high performance. In this paper, we assume that superscalar processor is implemented by FPGA or reasonable ASIC, these design flow cannot implement a large multi-port memory easily. Therefore, SRAM multiplexing method is widely used. However, SRAM multiplexing method tends to use huge amount of SRAM, if we want to implement a large multi-port memory. A bank memory can reduce multiplexing overhead. A bank memory diveds data across two or more memories. A bank memory can work as multi-port memory if two or more memory access operations concentrate into a specific bank. However, if multiple memory access concentrates to a specific bank, bank conflict occurs. Bank conflicts cause significant performance degradation because succeeding instructions can not execute until bank conflict is eliminated. In general, high performance processor dynamically rename instructions to exploit instruction level parallelism. If designer implements banked register file simply, destination of renamed instructions is allocated different bank, respectively. However, the number of bank conflict cannot reduce significantly because simple allocation method does not consider instruction’s execution latency and instruction dependency. Therefore, we propose a register write back port prediction mechanism to reduce performance degradation caused by bank conflict. Our proposed mechanism stores destination bank of dependency instruction. Using this information in physical register allocation, our proposed mechanism aim to reduce bank conflict. This paper also implements the proposed prediction mechanism into a superscalar processor and estimates performance, access latency, circuit scale, and power consumption. According to the result, our proposed mechanism can reduce execution cycles by 3.9% in maximum and 0.8% in average. Proposed mechanism also reduces power consumption, circuit scale and access time by 11.11%, 77.6% and 8.3%, respectively.
三重大学大学院 工学研究科 博士前期課程 情報工学専攻 コンピュータ・アーキテクチャ研究室
Full-Text

http://miuse.mie-u.ac.jp/bitstream/10076/15376/1/2015M229.pdf

Number of accesses :  

Other information