ハードウェアレジスタ
デジタルエレクトロニクス、特にコンピューティングでは、 ハードウェアレジスタは通常、フリップフロップで構成される回路であり、多くの場合、メモリと同様の多くの特性を備えています。
- 一度に複数のビットを読み書きする機能、および
- アドレスを使用して、メモリアドレスと同様の方法で特定のレジスタを選択します。
ただし、それらの際立った特徴は、通常のメモリの機能を超えた特別なハードウェア関連機能も備えていることです。したがって、視点によっては、ハードウェアレジスタは追加のハードウェア関連機能を備えたメモリのようなものです。または、メモリ回路はデータを保存するだけのハードウェアレジスタのようなものです。
ハードウェアレジスタは、ソフトウェアと周辺機器間のインターフェイスで使用されます。ソフトウェアはデバイスに情報を送信するためにそれらを書き込み、デバイスから情報を取得するためにそれらを読み取ります。一部のハードウェアデバイスには、内部で使用するために、ソフトウェアからは見えないレジスタも含まれています。
その複雑さに応じて、最新のハードウェアデバイスは多くのレジスタを持つことができます。標準的な集積回路は、通常、電子部品のデータシートの一部として外部に露出したレジスタを文書化します。
機能性
ハードウェアレジスタの一般的な用途は次のとおりです。
- 特定の機能の設定と起動、特に初期化中
- グラフィックカード用のビデオメモリなどのバッファストレージ
- さまざまな種類の入出力(I / O)
- ハードウェアユニットで特定のイベントが発生したかどうかなどのステータスレポート。たとえば、モデムステータスレジスタまたはラインステータスレジスタ。
「周辺ユニット」(CPUの外部のコンピューターハードウェア)でハードウェアレジスタを読み取るには、プロセッサによって発行された「ロード」または「ストア」命令を使用して、メモリマップI / OアドレスまたはポートマップI / Oアドレスにアクセスします。ハードウェアレジスタはワードでアドレス指定されますが、レジスタの読み取りまたは書き込みに使用されるワードの数ビットのみを使用する場合があります。
市販の設計ツールは、ハードウェア、ファームウェア、ハードウェア検証、テスト、文書化のためのメモリマップレジスタ仕様とコード生成を簡素化および自動化します。
レジスタには、読み取り/書き込み、読み取り専用、または書き込み専用があります。
書き込み専用レジスタは一般に回避されます。これらは、「ペリフェラルのリセット」レジスタなど、書き込まれたときに一時的なアクションを引き起こすが、読み取られる永続データを格納しないレジスタに適しています。これらは、Atari 2600ゲームコンソールのTIAチップなど、レジスタデータのリードバックに必要な比較的大きな論理回路と信号ルーティングのゲートを購入できない設計の唯一のオプションです。ただし、書き込み専用レジスタはデバッグをより困難にし、読み取り-変更-書き込みの問題を引き起こすため、読み取り/書き込みレジスタが優先されます。 PCでは、書き込み専用レジスタにより、スリープモードを終了するときにその状態を復元するために、スリープモードに入るときに高度な構成および電源インターフェイス(ACPI)がデバイスの状態を判断することが困難でした。
品種を登録する
中央処理装置(CPU)内のハードウェアレジスタは、 プロセッサレジスタと呼ばれます 。
ストローブレジスタは、通常のハードウェアレジスタと同じインターフェイスを備えていますが、データを保存する代わりに、書き込み(またはまれに、読み取り)するたびにアクションをトリガーします。それらはシグナリングの手段です。
レジスタは通常、保持できるビット数で測定されます。たとえば、「8ビットレジスタ」や「32ビットレジスタ」などです。
設計者は、次のようなさまざまな方法でレジスタを実装できます。
- 登録ファイル
- 標準SRAM
- 個々のフリップフロップ
- 高速コアメモリ
ソフトウェアで読み書きできる「プログラマから見える」レジスタに加えて、多くのチップには、ステートマシンとパイプライン処理に使用される内部マイクロアーキテクチャレジスタがあります。たとえば、登録済みメモリ。
基準
SPIRIT IP-XACTおよびDITA SIDSC XMLは、メモリマップレジスタの標準XML形式を定義します。