ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
クロックを基準に動作するマイクロプロセッサーで、クロックの立ち上がりから次の立ち上がりまでの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ステートの処理時間を要することが求められる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます