ステート

読み:ステート
外語: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マシンサイクルである。

  • T1ステート
  • T2ステート
  • T3ステート ‐ クロック立ち上がり時にデータバスから命令をフェッチする
  • T4ステート ‐ メモリーリフレッシュ

マシンサイクルが複数のとき

例えば、「LD A,55h」の場合、オペコード1バイト・オペランド1バイトで計2バイト命令、7ステートの処理時間を要し、また命令は2マシンサイクルである。

サイクル数が2ということは、命令フェッチをおこなうM1サイクルの後に、オペランドを読み出すためのM2サイクルが続くことを意味する。

  • M1サイクル
    • T1ステート
    • T2ステート
    • T3ステート ‐ クロック立ち上がり時にデータバスから命令をフェッチする
    • T4ステート ‐ メモリーリフレッシュ
  • M2サイクル
    • T5ステート
    • T6ステート ‐ クロック立ち上がり時にデータバスからデータをフェッチする
    • T7ステート ‐ メモリーリフレッシュ

同様に、「LD HL,1234h」の場合、オペコード1バイト・オペランド2バイトで計3バイト命令、10ステートの処理時間を要し、また命令は3マシンサイクルである。

Z80の場合、M1サイクルは常に4ステート、M2サイクル以降は常に3ステートなので、2マシンサイクルなら7ステート、3マシンサイクルなら10ステートの処理時間を要することが求められる。

  • M1サイクル
    • T1ステート
    • T2ステート
    • T3ステート ‐ クロック立ち上がり時にデータバスから命令をフェッチする
    • T4ステート ‐ メモリーリフレッシュ
  • M2サイクル
    • T5ステート
    • T6ステート ‐ クロック立ち上がり時にデータバスから下位バイトをフェッチする
    • T7ステート ‐ メモリーリフレッシュ
  • M3サイクル
    • T8ステート
    • T9ステート ‐ クロック立ち上がり時にデータバスから上位バイトをフェッチする
    • T10ステート ‐ メモリーリフレッシュ
関連する用語
マイクロプロセッサー
クロック

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club