ステート
読み:ステート
外語:state

 クロックを基準に動作するマイクロプロセッサーで、クロックの立ち上がりから次の立ち上がりまでの1単位のこと。単にクロックと呼ぶこともある。
目次

概要
 最近では既に死語と化しているが、Z80など8ビットマイクロプロセッサーの時代にはよく使われており、CPUこのステートを単位として稼働する。
 CPUに供給されるクロックは正弦波である。波は上下上下上下上下…のように振動してCPUに供給される。このうち、「上下」という一組、すなわちクロックの一周期が「ステート」である。
 命令は必ずステートの単位で実行される。1.5クロックのような、1クロック以下の刻みで実行されるものは無い。

特徴

ステートとマシンサイクル
 Z80の場合、実際には1ステートで実行が終わる命令はなく、最低4クロック(4ステート)が必要である(NOP命令ですら)。
 このような、数クロックを組み合わせた意味のある単位を「マシンサイクル」という。一つの命令で複数のマシンサイクルがある場合、一つ目をM1サイクル、二つ目をM2サイクル、のように呼び分ける。
 Z80が1命令に4ステートも必要なのは、Z80の特殊な仕様によるもので、メモリーリフレッシュも含めているからである。

マシンサイクルの動き
 例えば、「ADD A,B」のようにオペコードが1バイトのシンプルな命令は、4ステートの処理時間を要する。また命令は1マシンサイクルである。

マシンサイクルが複数のとき
 例えば、「LD A,55h」の場合、オペコード1バイト・オペランド1バイトで計2バイト命令、7ステートの処理時間を要し、また命令は2マシンサイクルである。
 サイクル数が2ということは、命令フェッチをおこなうM1サイクルの後に、オペランドを読み出すためのM2サイクルが続くことを意味する。
 同様に、「LD HL,1234h」の場合、オペコード1バイト・オペランド2バイトで計3バイト命令、10ステートの処理時間を要し、また命令は3マシンサイクルである。
 Z80の場合、M1サイクルは常に4ステート、M2サイクル以降は常に3ステートなので、2マシンサイクルなら7ステート、3マシンサイクルなら10ステートの処理時間を要することが求められる。

再検索