kairo-gokko (34) 1bit CPU 1



Dフリップフロップが手に入ったら 1bit CPU が作れます。

右上の出力を左上の入力につないであげるだけ (2つの子回路がつながって 1つになるので、片方の子回路のプラス極・マイナス極は消しました)。

f:id:sonota88:20200411113813p:plain

できました! 1bit CPU です!

f:id:sonota88:20200411113330g:plain

「えっ、これのどこが CPU なの……??」 と思った方は、「CPUの創りかた」を読んでください。

168〜169ページに載っている 「命令セットが MOV A, A のみという 1bitCPU」 (オリジナルCPU試作1号機) がこれです (※ 一応補足しておきますと、「かなり強引に考えれば」「話の流れがかなりインチキくさいような気もしますがー」というおことわり付きで説明されています )。


Dフリップフロップの部分が大きいのでここが本体っぽく見えてしまいますが、 ここはデータを保持する部分なので役割的にレジスタでしょうね。

じゃあどこで演算やってんの?   CPU って(演算)処理装置(processing unit)でしょ?

それは、あえて場所を示すとこの部分(次の図の黄色の部分)なんじゃないかと思います。

f:id:sonota88:20200411113648p:plain

「いやそれ線でつないでるだけじゃん」となりそうですが、

def process(input)
  input
end

のように、渡された値をそのまま返すメソッドのようなもので、 つまり「何もしない」という演算をやっていると考えればいいんじゃないかと。

この部分をいじっていくと CPU っぽくなっていきます。


上の GIF 画像のような動きになるだけなので、今回は触れるデモは省略します。