この記事はセルオートマトンによるCPU作成連載記事の6つ目です。(2022/12/12)
これまで論理回路の組み合わせをしてきましたが、次は順序回路です。
自己保持回路とはOn/Off状態を自分で保持し続ける回路です。入力が途切れてもそれまでの入力の状態を保持します。
半導体の世界ではフリップフロップもしくはラッチ回路と類似しています。CPUの中ではレジスタなどで利用されます。8ビット単位で処理するCPUでは8個セットになった自己保持回路をレジスタとして多く利用します。また状態を保持するための1個だけの自己保持回路も多く利用します。
このサンプル回路の下半分が自己保持回路です。上半分はクロックを自己保持回路に定期的に流すためのループです。
クロックが自己保持回路に流れるごとに自己保持回路のOn/Offが反転します。
次の例では、自己保持回路に入力が2つあります。上からの入力がクロックです。クロックが来るとOn/Offが反転するのではなくその時に左から来ていた入力で上書きされます。クロックが来ていないときは左からの入力が無視されています。
クロックが来てないときは自己保持回路内で状態がループしています。クロックが来るとループが切られ、左からの入力が中に流れ込みます。クロックが来ていないときは左からの入力が無視されています。
半導体によるCPUでも出力を入力に戻すことで自己保持回路ができる理屈は同じです。
この回路1つで1ビットの情報を保持できます。8ビット整数を保存するレジスタはこれを8個並べることになります。