
YouTuberのShadowman39氏が、アメリカの組み立て玩具K’NEXを使った8ビット機械式コンピュータの製作プロジェクトを進めており、その第1弾として算術論理演算装置(ALU)の動作を解説する動画を公開した。このプロジェクトは、現代のデジタルコンピュータが行う計算処理を、すべて物理的な機械部品で再現する試みである。
この機械式コンピュータは、0から255までの数値を扱う8ビット仕様で設計されている。各ビットは物理的なピンの位置で表現され、ピンが引き出された状態を「1」、押し込まれた状態を「0」として2進数データを格納する。ALUには3つのレジスタが搭載されており、2つの入力値を格納するAレジスタとBレジスタ、計算結果を保存するSumレジスタから構成されている。
小学校の筆算と同じ原理で機械的に加算処理
加算処理の仕組みは、小学校で習う筆算と同じ列ごとの計算方式を採用している。各列には専用のカウンター機構が配置され、入力された2進数の値に応じて45度ずつ回転し、繰り上がりの処理も自動的に行う。Shadowman氏は「カウンターは0の時は何も起こらず、1の時は合計ピンを持ち上げ、2の時は繰り上がりピンのみを作動させる」と動作原理を説明している。
駆動システムにはチェーンとクランク機構を採用し、モーターによる自動運転を実現。8個の歯車が連動してクランクを360度回転させ、重りによってカウンターを正確な位置に維持している。また、過負荷を防ぐ安全機構も組み込まれており、チェーンに異常が発生した場合は自動的に動作を停止する仕組みを備えている。
加減算から論理演算まで多彩な処理機能を搭載
このALUは基本的な加算だけでなく、減算や複数の論理演算にも対応している。減算処理では2の補数表現を利用し、Bレジスタのすべてのビットを反転させた上で1を加算することで実現。また、AND演算、XOR演算、ビット反転、インクリメント・デクリメント機能も搭載している。
条件分岐処理に必要な3つのフラグ機能も実装されており、ゼロフラグ(結果が0の場合)、ネガティブフラグ(結果が負数の場合)、オーバーフローフラグ(計算結果が8ビットの範囲を超えた場合)を検出できる。これらの機能により、より複雑なプログラム処理への対応が可能となっている。
Shadowman39氏は次回のアップデートでデータ転送機構を完成させ、その後RAMスタック機構の製作に取り組む予定だという。現在のALU部分だけでも相当な複雑さを持つこの機械式コンピュータの完成形がどのような動作を見せるのか、今後の進展が待たれる。
関連情報
関連商品(広告)

※Amazonへのリンクにはアフィリエイトリンクが含まれています。リンク先から購入の際に発生する紹介料は、FabSceneの運営費になります。