「レジスタ (コンピュータ)」の版間の差分
削除された内容 追加された内容
m →変数 |
m編集の要約なし |
||
2行目:
== 概説 ==
一般に、[[論理回路]]において、[[フリップフロップ]]などにより状態を保持する装置をレジスタと呼ぶ。コンピュータにおいては、プロセッサが内蔵しているそれを指す。プロセッサには、プログラムが読み書きできるレジスタ以外に、プロセッサ自身が
論理回路において使われるレジスタという用語としては、たとえば[[レジスタ転送レベル]]などがある。
プロセッサ内部のレジスタは、計算結果を一時的に保持したり、[[Random Access Memory|RAM]]や[[Read Only Memory|ROM]]などの[[記憶装置|メインメモリ]]を読み書きする際の[[メモリアドレス|アドレス]]を保持したり、プロセッサや周辺機器の
プロセッサ内部にはたいてい数個から数十個のレジスタがあり、内部[[バス (コンピュータ)|バス]]や演算回路などと密接に結びついているため、高速に
プロセッサについて「○○ビットプロセッサ(あるいは○○ビットCPU、○○ビットDSPなど)」と表現する場合、その目安の一つがレジスタの幅、特にそのプロセッサの汎用レジスタの幅である。また、[[MC68000]]のようにプロセッサ自体の設計は32ビットだが外部データバスは16ビット、といった設計の場合、「内部32ビット・外部16ビットCPU」のように言うこともある。こだわる人もいるが、そもそも厳密に定義できるわけでもないのでこだわる意味はない。
44行目:
===== スタックポインタ =====
アドレスレジスタの一種で、[[コールスタック]]の先頭を指すポインタレジスタである。これが示すアドレスの内容を読み出すと同時にアドレスを増やす、逆に、示すアドレスに書き込むと同時にアドレスを減らす、といった
また、このような、アドレスを参照してロードあるいはストアと同時にアドレスレジスタのインクリメント、デクリメントを行えるモードを「ポストインクリメント」・「プリデクリメント」、または「プリインクリメント」・「ポストデクリメント」と言う(プリとポストの組み合わせは、通常このどちらかになる)。
82行目:
== 特殊なアーキテクチャ ==
=== レジスタセット ===
レジスタの値は、プロセッサの内部状態そのものである。つまり、レジスタの値をそっくりそのままどこかに退避させ、後にそれをそっくり元に戻せば、プロセッサの
割り込み処理による高速応答性を要求されるアプリケーションを作る場合や、時分割などによる擬似的なマルチタスクを実現する時には、この
一般には、コンテキストスイッチはスタックを用いてレジスタの内容を外部のメインメモリの一定領域上に一時保存することで実現されている。しかし、コンテキストスイッチを高速化するために、主要なレジスタのコピーを保持する別のレジスタ群をプロセッサ内部に用意しておき、それを用いてコンテキストスイッチを行なう設計になっているプロセッサもある。つまり、プロセッサ内部のハードウェアにより、一瞬にしてアクセスするレジスタを切り替えられる。このようなレジスタ群を「レジスタセット」と呼ぶ。また、切り替えるレジスタ群が1セットしかない場合、それらのレジスタは「シャドーレジスタ」または「裏レジスタ」と呼ばれる。
93行目:
=== ビットの拡張 ===
ソフトウェア資産の有効活用を目的として、16ビットプロセッサの命令セットをそのまま
この場合、プロセッサ内部のレジスタのビット長は大きく(たいていの場合2倍に)なっているのだが、互換性を保つために古いCPUの命令コードで
インテル社の8086系列のCPUは、このように拡張してきた経緯を持つ代表的なプロセッサである。8086CPUが誕生する前のインテルの8ビットCPU、8080では汎用レジスタを“a”, “b”, “c”…と名付けていた。これを拡張した8086の汎用レジスタは“ax”, “bx”, “cx”…となった。(xはextendの略)ところが、80386で32ビット化したため、レジスタの名前は“eax”, “ebx”", “ecx”…となった。(eもextendの略)さらに、[[アドバンスト・マイクロ・デバイセズ|AMD]]社が[[x64|AMD64]]で64ビットに拡張した時には、レジスタ名は“rax”, “rbx”, “rcx”…とになった。
115行目:
== ペリフェラルデバイスのレジスタ ==
ペリフェラルデバイスのレジスタは、ペリフェラル([[プログラマブル・カウンタ]]や[[割り込み (コンピュータ)|割り込み]]制御、[[UART|シリアル通信ポート]]などのハードウェア)の
[[組み込みシステム|組み込み機器]]用の[[マイクロコントローラ]]の場合、プロセッサだけでなく多数のペリフェラルデバイスも同一のチップ内に納められており、多くのレジスタがマイクロコントローラ内に存在する。
|