レジスターマシン
レジスターマシンとは、レジスターによる計算を中心とした計算機のことである。
概要[編集]
複数のレジスター間でそれぞれにセットされた値を使って演算などをすることで一連の処理を行う仕組みである。
命令セットは、通常はレジスター同士か、レジスターと即値の間での計算となっている。例えば、レジスター1に値1を即値として指定してセットし、次の命令でレジスター1と即値として指定された値2を加算する、のようにして計算を行う[1]。計算結果は、特定のレジスターに格納される[2]。
少なくとも、1990年から2020年までに販売されている一般向けCPU(もしくはマイクロプロセッサー)の多くがレジスターマシンであると思われる。
レジスター[編集]
レジスターの基本サイズは、プロセッサーの基本ビットサイズと同じになる。8ビットマイクロプロセッサーであれば8ビット、64ビットマイクロプロセッサーであれば64ビットである。結合可能な2つのレジスターや一部の特殊なレジスターは基本サイズの倍のサイズを持った倍精度レジスターとして使用でき、倍精度数値[3]の計算や、アドレス(番地)を示すのに使われる。
レジスターには固有の役割が与えられているものがある。
レジスターの数や役割はCPUによって異なるが、例としてレジスターの数が比較的少ない、Z80という8ビットCPUの例を以下に示す。
Z80のレジスターにはA,B,C,D,E,F,H,L,SP,PCなどがあり、Aレジスター(アキュムレーター)が演算の中心となる。命令セットはAレジスターを使ったものが多く、Aレジスターを使った命令が基本的に高速である。F(フラグレジスター)は、キャリーフラグなどのフラグを扱う特殊なレジスターである。BとC、DとE、HとLは、それぞれ倍精度レジスターとして扱うことができる。SP(スタックポインター)、PC(プログラムカウンター)は、特定の用途にしか使用できず切り離せない特殊な倍精度レジスターである。
アキュムレーターを中心とした計算機は、アキュムレーターマシンとも呼ぶ。