水地史上最少のレッドストーンCPU
前置き
みなさんは、どれくらい小型なレッドストーンCPUをご存じですか?
僕が今回制作したのは、奇抜なアイディアを組み込み、さらにレジスタ容量などを犠牲にして達成した僕史上最少のレッドストーンCPUになっています。
CRED VII
今回ご紹介するレッドストーンCPUは「CRED VII」です!!
実は、CRED VIIのバージョンは1~10まであり、バージョン1はレッドストーンCPUの解説用に作ったものだったんですが、レッドストーンCPUを解説するのが意外に難しく、途中でやめてしまったものになります。
そこで、CRED VIIは路線を変更し、1チャンクCPUとして制作することにしました。
1チャンクとは、マイクラの16×16の範囲内のことで、その範囲内の上下も全て同じ一つのチャンクになります。
今回制作したレッドストーンCPUは、16×16×11のCRED VII(バージョン10)です!
CRED VIIのバージョン2から1チャンクCPUの制作を始めたので、実質的に第九世代にあたります。
なので、結構洗練されていると信じています。
ALU&レジスタ
ALUとレジスタは、なんと1bitになっています!!
ただ、真の1bitではなく、シリアル通信を使うことで疑似的に4bit化しています。
なので、1bit(疑似4bit)といった感じになっています。
ALUは加減算、インクリメント、デクリメントが行え、レジスタはAレジスタとBレジスタがあります。
I/Oポート
CRED VII(バージョン10)のI/Oポートは、通常のパラレル通信となっています。
ALUやレジスタは1bitのシリアル通信でしたが、I/Oポートは使い勝手を考えて、パラレル通信に変換しています
スペースは取りますが、使い勝手のためにやむを得ないところだと思っています。
スペースの関係で、インプットが横、アウトプットが縦に並んでいます。
ROM&PC
ROMやPC、一部の命令デコーダーはセットで開発されました。
なので、一気に紹介したいと思います。
グレーのコンクリで作られているROMは、信号強度式にすることで体積を小さくしています。
また、空色のコンクリで作られたPCも、信号強度化させることで体積を小さくしています。
どちらも信号強度にすることで大幅な小型化を達成できており、信号強度化しなかった場合に比べて3分の1以下に抑えられています。
黄色の回路は、命令デコーダーの一部で、この回路のおかげでROMを信号強度にしてもALUやレジスタの命令デコーダーが命令を解読できるようになっています。
1bit CPU
従来
従来の僕の赤石CPUは、4bitの場合4本の配線を使って入力AとBをパラレル通信で通信していました。
最初に4本の配線で入力Bの情報を伝達してから、次に同じ配線を使って入力Aの情報を伝達していました。
ですが、1bit CPUは配線が一本しかないので、この構造とは全くの別物になります。
シリアル通信の塊
ここからは、1bit CPUでどのように4bitの計算を行っているのか、解説したいと思います。
結論から言ってしまうと、この1bit CPUはシリアル通信によって疑似的に4bit化しています。
1つ目の情報が1bit目、2つ目の情報が2bit目、3つ目の情報が3bit目、4つ目の情報が4bit目に相当していることで、シリアル通信で疑似的に4bit化しています。
では、加算器で計算する際はどのようにして計算しているのでしょうか?
実は、入力AとBの情報を交互にALUに伝達しています。
ちなみに、ALUの演算結果をレジスタに書き込む際に使う配線も同じようにシリアル通信しています。
ですが、当然一本の配線では最大で1秒間に10bitの情報しか伝達できません。
そのため、配線の帯域がボトルネックになり、さらにALUも一度に処理できる能力はたった1bit分なので、配線の帯域がなんとかなってもALUの性能で今度は頭打ちするめ、あまり処理速度の面では向いていない構造になっています。
まとめ
今回紹介したCRED VII(バージョン10)は、1bitというまさに挑戦的なレッドストーンCPUで、これまでの僕のレッドストーンCPUとしては最もコンパクトという感じですね。
今回のCREDも、十分新しいことにチャレンジできたと思っています。
(CREDのCは ChallengeのC)
僕は、1bit CPUにまだ可能性を感じており、速度は多少遅くても、既存のレッドストーンCPUの回路サイズを大きく塗り替えられるのでは無いかと思っています。
なので、今後次世代型の1bit CPUを開発していきたいと思います。
最後まで読んでいただき、ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?