Fabrication

2012.05.14

時計をシミュレートする機械式CPU

Text by kanai

Lior ElazaryのMechanical CPU Clockにはそそられる。これは、CPUの働きをシミュレートする時計だ。

CPUに何か意味のある働きをさせたいときには、何をするかを伝えなければなりません。それは、命令という形で伝えます。この時計では、構造を単純化するために、「時」の表示だけに絞り込みました。つまり、Hours(時)という名前の変数に1ずつ足していき、合計が11であるかどうかを確認します(時間を0ベースで示しているので、12は0になります)。条件が正であれば、変数を0に戻します。以上の条件式を直接CPUに書き込んでは面白くありません(それではただの時計です)。そこで、基本的な命令セットを実装して、その基本的な命令だけを使って時計コードを記述しました(この命令セットは、アセンブリ言語として知られています)。Hours変数の値はレジスタに保管されます。レジスタとは、処理に利用するデータを記憶しておくための特別なメモリです。また、単純な1ユニット(1ビット)メモリアドレスを使って制御装置のフラグを操作します。この制御装置は、ごく個人的な理由からDTDと名付けました(Dedicated to Dani:Dani専用 – 説明すると長くなるのでやめます)。 このCPUは時計用命令セットでプログラムされていますが、別の命令を使ってプログラムすれば、いろいろな動作ができるはずです。

Instructableも参照してほしい。
– John Baichtal
原文