レジスタファイル

レジスタファイルとは



レジスタファイルは、コンピュータの中央演算装置CPU)内に設けられた、高速アクセスが可能な記憶装置です。CPUが処理を行う際に頻繁に利用するデータを一時的に格納し、演算やデータ転送を効率化します。レジスタファイルは、CPUの命令セットアーキテクチャの一部として定義され、プログラムから直接アクセス可能です。これは、キャッシュメモリのように透過的な存在とは異なります。

実装



現代のレジスタファイルは、高速なSRAM(静的ランダムアクセスメモリ)をベースに、複数の読み書きポートを備えた形で実装されています。これにより、複数のデータアクセスを同時に行うことが可能になります。通常のSRAMは同一ポートで読み書きを行うのに対し、レジスタファイルでは専用の読み出しポートと書き込みポートを持つ点が特徴です。

レジスタファイルの一般的な回路レイアウトは、ワード線が水平に、ビット線が垂直に配置されたシンプルな配列構造です。各ビットセルは、2つのインバータで状態を保持し、NMOSトランジスタを介してデータの読み書きを行います。大きなレジスタファイルでは、小さな配列を線対称に並べたり、回転させて構成されることがあります。

レジスタファイルは、ポートごとにワード線、読み出し線、書き込み線を持ちます。これにより、信号線部分の面積はポート数の二乗に比例して増加し、トランジスタの面積はポート数に比例して増加します。そのため、多数のポートを持つレジスタファイルは、サイズが大きくなる傾向があります。

デコーダ



レジスタファイルへのアクセスを制御するデコーダは、プリデコーダとデコーダプロパーに分割されることが一般的です。デコーダは、ワード線を駆動するANDゲートの集合体であり、読み書きポートごとに配置されます。例えば、ビットセルごとに6本のワード線がある場合、デコーダには1行あたり6個のANDゲートが必要です。デコーダは配列と同じ幅を持つ必要があり、ANDゲートは幅広で短い形状であることが求められます。

ビットセルの構成



ビットセルの基本的な構成は、以下のようになります。

状態は、2つのインバータによって保持される。
データは、NMOSトランジスタによってビットラインに読み出される。
データは、2つのNMOSトランジスタを使って、片方をグラウンドにショートさせることで書き込まれる。

これにより、読み出しポートはトランジスタを1つ、書き込みポートは4つ使用することになります。ビットセルの最適化としては、Vdd/Vssなどのラインをセル間で共有する、読み出しビット線をプリチャージする、読み出しのビット線の振幅を小さくして高速化を図る、書き込みのビット線同士を束ねるなどの方法があります。

マイクロアーキテクチャとの関係



レジスタファイルは、データパスの間隔と一致するように設計されることが一般的です。これにより、データパスの曲がり角にバスを配置する必要がなくなり、設計がシンプルになります。ただし、すべてのユニットが同じ幅を持つ必要があり、データパスの幅は最も広いユニットに合わせる必要があります。レジスタファイルは書き込みポートごとに2本の線が必要なため、データパスの幅を決定する要因となることが多いです。

複数のユニットが同一データパス上に存在する場合は、二つのデータパスを隣接させ、ビット間隔を狭めることで面積を節約できます。この場合、レジスタファイルのコピーがデータパスごとに必要になります。例えば、Alpha 21264では整数のレジスタファイルを二つ持ち、互いにデータをコピーするためのサイクルを設けています。MIPS R8000の浮動小数点ユニットでは、浮動小数点レジスタファイルを二つ持ち、書き込みは両方に同時に行われます。

レジスタ・リネーミングを行うプロセッサでは、各機能ユニットが物理レジスタの一部に対して書き込むように割り当てることができ、レジスタファイルは複数レジスタに対して単一書き込みポートを持つものになります。これにより、ビットごとに複数のポートを持つ必要がなくなり、面積を節約できます。

SPARCアーキテクチャでは、レジスタウィンドウの概念が導入されており、アーキテクチャ上のレジスタ名が、より大きなレジスタファイルの一部を示すようになっています。これにより、多数のレジスタを効率的に利用できるようになります。例えば、アーキテクチャ上のレジスタr20は、ウィンドウが7つであれば、物理レジスタ#20, #36, #52, #68, #84, #100, #116を指す可能性があります。

レジスタファイルの消費電力



レジスタファイルの消費電力を減らす技術は、低電力エレクトロニクスの分野で重要な研究課題です。さまざまな最適化技術を駆使することで、低消費電力で高性能なレジスタファイルを実現することが可能です。

参考文献



Register File Design Considerations in Dynamically Scheduled Processors - Farkas, Jouppi, Chow - 1995
Register file design considerations in dynamically scheduled processors - Farkas, Jouppi, Chow - 1995

関連項目



Sum addressed decoder

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。