プロセッサレジスタとは
コンピューター処理装置(CPU)上の保存可能なメモリへの最も速いアクセスは、プロセッサレジスタです。 コンピューターアーキテクチャは、コンピュータープロセスが定期的にアクセスする値をそこに格納できるように、CPUキャッシュにプロセッサーレジスタメモリ機能を設計します。 プロセスは、保存された値に基づいて、迅速にアクセスして実行できます。 プロセッサレジスタはCPUに格納されるため、ストレージメモリ階層の最上位と見なされ、通常、割り当ては変数によって決定されます。 データが処理されると、キャッシュ、ランダムアクセスメモリ(RAM)、またはハードディスクストレージに復元されます。
コンピュータプロセッサには、それらを操作する命令やテスト、または特定のコンテンツに応じて、さまざまな種類のレジスタがあります。 データ、アドレス、および汎用レジスタには、メモリストレージの数学的な値とアドレスが含まれています。 論理演算命令の真理値を持つ条件付きレジスタ、piやゼロなどの読み取り専用値を持つ定数レジスタ、およびプログラムカウンタ、ステータスレジスタ、スタックメモリ使用量用のスタックポインタを保持する専用レジスタがあります。 制御レジスタには、CPUアーキテクチャに組み込まれた命令セットからの命令が含まれています。 また、メモリバッファ、メモリデータ、メモリタイプ範囲、およびアドレスにアクセスするCPUおよびRAMの回路からフェッチするものがいくつかあります。 プロセッサレジスタに割り当てられていない変数はRAMに格納され、読み取りおよび書き込み操作のためにロードおよびロードされますが、処理が遅くなります。
コンパイラー・コンピューター・プログラムの開発者は、レジスターとRAMでの処理の速度の違いを知って、通常、機能を迅速に操作するためにプロセッサーのレジスター・ストレージで可能な限り動作するようにプログラムを設計します。 ジャストインタイムコンパイラプログラムの場合、リニアスキャン割り当てと呼ばれるレジスタ割り当て手法は、レジスタ操作を追跡し、レジスタの計算能力を解放してプログラムにすばやく戻します。 レジスター割り当て手法は、プログラムの変数をできるだけ多くのレジスターに割り当て、高速なコンパイルのためにレジスターの最小数を最大化する操作フローで取得しようとします。
多くのプロセッサレジスタは変数と命令セットの一時的な保存用であるため、プログラムで使用するすべての操作は、CPUによる操作のために保存できます。 動作中、CPUは、読み取り、書き込み、または移動操作で処理されるデータのコピーをレジスタのCPUキャッシュで最初に調べてから、RAMおよびハードディスクのセカンダリストレージを調べます。 2011年現在、ほとんどのCPUは3つの個別のキャッシュを保持しています。 命令キャッシュは命令による実行フェッチに関係し、変換類似バッファは仮想アドレスから物理アドレスへのアドレス変換を高速化し、データキャッシュはプロセッサレジスタ命令セットによって操作されるデータのマルチレベル階層ストレージを保持します。