リレーから始める CPU 自作
2021-12-01
トランジスタを使わずにコンピュータを作ります。
\[ \newcommand{dn}[3]{\frac{\mathrm{d}^{#3} #1}{\mathrm{d} #2^{#3}}}
\newcommand{\d}[2]{\frac{\mathrm{d} #1}{\mathrm{d} #2}}
\newcommand{\dd}[2]{\frac{\mathrm{d}^2 #1}{\mathrm{d} {#2}^2}}
\newcommand{\ddd}[2]{\frac{\mathrm{d}^3 #1}{\mathrm{d} {#2}^3}}
\newcommand{\pdn}[3]{\frac{\partial^{#3} #1}{\partial {#2}^{#3}}}
\newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}}
\newcommand{\pdd}[2]{\frac{\partial^2 #1}{\partial {#2}^2}}
\newcommand{\pddd}[2]{\frac{\partial^3 #1}{\partial {#2}^3}}
\newcommand{\p}{\partial}
\newcommand{\D}[2]{\frac{\mathrm{D} #1}{\mathrm{D} #2}}
\newcommand{\Re}{\mathrm{Re}}
\newcommand{\Im}{\mathrm{Im}}
\newcommand{\bra}[1]{\left\langle #1 \right|}
\newcommand{\ket}[1]{\left|#1 \right\rangle}
\newcommand{\braket}[2]{\left\langle #1 \middle|#2 \right\rangle}
\newcommand{\inner}[2]{\left\langle #1 ,#2 \right\rangle}
\newcommand{\l}{\left} \newcommand{\m}{\middle} \newcommand{\r}{\right}
\newcommand{\f}[2]{\frac{#1}{#2}} \newcommand{\eps}{\varepsilon}
\newcommand{\ra}{\rightarrow} \newcommand{\F}{\mathcal{F}}
\newcommand{\L}{\mathcal{L}} \newcommand{\t}{\quad}
\newcommand{\intinf}{\int_{-\infty}^{+\infty}}
\newcommand{\R}{\mathcal{R}} \newcommand{\C}{\mathcal{C}}
\newcommand{\Z}{\mathcal{Z}} \newcommand{\bm}[1]{\boldsymbol{#1}} \]
これは リレーから始める CPU 自作 Advent Calendar 2021 1 日目の記事です。
自己紹介
はじめましての方ははじめまして、そうでない方はこんにちは。Kanade です。普段は機械工学の学生をやっている傍ら、趣味でいろいろなものを作って遊んでます。
5 年前に Harry Porter’s Relay Computer というサイトを見て、リレーコンピュータを作ってみたいと思って以来、「CPU の創りかた」を読んでみたり、Linux のソースコードを読もうとして挫折したり、低レイヤの沼にずぶずぶと引き込まれていきました。
今年ようやく、まともに動くリレーコンピュータが完成したので、いままでに学んだことをまとめようと思い、アドベントカレンダーを作りました。
目標
このアドベントカレンダーの目標は、コンピュータを完全に理解して作れるようになることです。何を以って「完全に理解した」とするかは難しいですが、少なくとも異世界に転生したときにコンピュータを作って無双できる ようになれるとは思います。
そのために、トランジスタを使わずに コンピュータを作ります。トランジスタを使ってコンピュータを作ることはできますが、トランジスタのしくみを理解するのは難しいです。実は、トランジスタの内部を理解することはコンピュータを理解する上で本質的ではないのです。トランジスタなしでコンピュータが作れれば、転生先の異世界に NEC か東芝か日立がなかったとしても安心です。
予定
1 週目:論理回路(組合回路・順序回路)をリレーで作る
2 週目:コンピュータの動作と構成
3 週目:リレーコンピュータの製作
>>> 2 日目