アイデアの実行可能性の検証:1桁のコンピューター
これは4番目の記事であり、準備ができ次第続けます。 目次:
- 3つまでカウント:回(3進マルチプレクサーと加算器)
- 3にカウント:2(メモリ)
- 3つに数えます:3つ(カウンター)
- 最大3つまでカウントします。4つ(1桁のコンピューターと3コマンドのコマンドシステム)
これは、ハードウェアの主要部分がどのように見えるかであり、今日議論されます(ジャンパーの神へのより多くのジャンパー!):
近未来:3台のコンピューターコンピューティングコマンドシステム
私が言ったように、私の目標は、三元論理で動作する、プリミティブであるが具体的な、プログラム可能なハードウェアを構築することです。 これまでのところ、私はここで提案されている次のコマンドシステムに傾倒しています。
- 各命令は固定長(5トリット)になります
- 命令識別子ごとに2つのトリット、そのパラメーターごとに3つのトリット(1つのトライアド)
NN (-4)-将来への拡張(転送/ローンによる加算/減算、符号フラグと転送フラグに応じて次のコマンドをスキップするなど)
NO (-3)-制御をtttに転送します(将来、レジスターR13を介してセグメントを切り替えることができます)
NP (-2)-R1およびR2でOPB ttt(ユニバーサルバイナリコマンド)を実行し(コマンドを指定する他の2つのトライアドはR3およびR4から取得されます)、符号フラグを設定します
ON (-1)-R1でOPA ttt(ユニバーサル単項コマンド)を実行し(同じR1に結果を書き込みます)、符号フラグを設定します
OO (0)-レジスターのコピー(以下を参照)
OP (+1)-レジスターR1にトライアドを書き込みます
PN (+2)-レジスターR2にトライアドを書き込む
PO (+3)-レジスターR3にトライアドを書き込む
PP (+4)-レジスターR4にトライアドを書き込む
レジスタのコピー:
OONNN-R1をR13にコピー
OONNO-R1をR12にコピー
OONNP-R1をR11にコピー
OONON-R1をR10にコピー
OONOO-R1をR9にコピー
OONOP-R1をR8にコピー
OOPON-R1をR7にコピー
OOPOO-R1をR6にコピー
OOPOP-R1をR5にコピー
OOONN-R1からR4へのコピー
OOONO-R1をR3にコピー
OOONP-R1をR2にコピー
OOOON-R1をデクリメントし、符号フラグを設定します
OOOOO-R1を確認し、符号フラグを設定します
OOOOP-R1をインクリメントし、符号フラグを設定します
OOOPN-R2をR1にコピー
OOOPO-R3をR1にコピー
OOOPP-R4をR1にコピー
OOPNN-R5をR1にコピー
OOPNO-R6をR1にコピー
OOPNP-R7をR1にコピー
OOPON-R8をR1にコピー
OOPOO-R9をR1にコピー
OOPOP-R10をR1にコピー
OOPPN-R11をR1にコピー
OOPPO-R12をR1にコピー
OOPPP-R13をR1にコピー
コピーはR1から/にのみ登録されることに注意してください。 他のレジスタ間のコピーは2つのコマンドで実行する必要がありますが、OOコピーコマンドパラメータの3つのトリットにより、最大13個のレジスタをアドレス指定できます。
命令メモリは3ポジションスイッチによって実行されます。 命令の直接パラメータは3分の3であるため、コマンドメモリは3つのトリットでのみアドレス指定され、27命令を提供しますが、これは十分ではありません。 したがって、命令メモリのいくつかのセグメントがあり、レジスタR13を使用してセグメントを切り替えます。これにより、6ビットのアドレスバスが提供され、命令メモリの実際の量は、このメモリをはんだ付けするのにどれだけ疲れるかによってのみ制限されます。
コマンドメモリーの1つのセグメントは、このような15個のハンカチから入力されます。
これらのショールにはそれぞれ9つの3ポジションスイッチがあり、わかりやすくするため(特に写真では)、コマンドは2色のLEDで強調表示されています。
しかし、大量(数百)のトリムのはんだ付けに突入する前に、まず、この原理に基づいて何かを構築できることを確認するために、非常に単純な計算機を作成してみましょう。
現在のケース:1桁のコンピューター
したがって、最大限に簡素化します。 計算機には合計9つのチームがあり、各チームは最高のトリットIと下位のトリットJで与えられます。
Ij
NN-R1をR4にコピー
いいえ-R1をR3にコピー
NP-R1をR2にコピー
オン-R1をデクリメントし、符号フラグを設定します
OO-R1を確認し、符号フラグを設定します
OP-R1をインクリメントし、符号フラグを設定します
PN-R2をR1にコピー
PO-R3をR1にコピー
PP-R4をR1にコピー
9つのコマンドを使用すると、最大4つのメモリレジスタをアドレス指定できるため、4つのシングルレジスタレジスタと1つの符号フラグがあります。 計算機にはメモリがまったくないため、現在のコマンドポインター(カウンター)も必要ありません。
レジスタを収集します
鉄片を集めて、各部分を個別にテストします。 第一に、そのような数と密度のワイヤでは、設置エラーの可能性が非常に高く、第二に、私たちの東のパートナーは非常に高品質のジャンパーを販売しないことがよくあります:)
したがって、レベルごとに記憶する4つの同一のメモリセルがあります。これらについては、2番目の記事で詳しく調べました。
すべてのセルへのアクセスにアクセスすることは難しく、非合理的です。したがって、1対4のマルチプレクサを介してアドレス指定されます。 もちろん、これは1対9のマルチプレクサの単純なバージョンです。 その結果、メモリのスキームは次のとおりです。
つまり、レジスタのメモリは、入力として2つのtritアドレスを取り、対応するメモリセルのレッグC、A、Qを出力として提供する鉄片です。 以下に、レジスタアクセステストのビデオを示します。
適切なタイミングで正しいレジスタに対処する
レジスタのコピーはすべて、中間バッファーを介して行われます。 つまり、最初にレジスターの内容がバッファーにコピーされ、次にバッファーが最終レジスターにコピーされます。私の1層コンピューターは、負のレベルで3進のこぎりでクロックされ、バッファーへのコピーが行われ、正の場合はバッファーからメモリーに戻されます。
このスキームにより、 IJ命令番号とCLK 3進鋸信号に応じて、適切なタイミングで目的のメモリレジスタをアドレス指定できます。
赤のマルチプレクサはコピー元のセルのアドレスを生成し、緑のマルチプレクサは記録が実行されているセルのアドレスを提供します。 青色のマルチプレクサは、CLK信号に応じて切り替えます。
メモリのアドレス指定スキームをテストするビデオを次に示します。
直接コピー
必要なメモリアドレスの生成は、上記のスキームを使用して自動的に行われるため、スキームを乱雑にしないために、4つのレジスタがあることを忘れて、メモリにレジスタ+バッファが1つしかないことを想像してください。
レジスタからクリップボードへ、またはその逆へのコピーは、非常に原始的に実行できます。
負のCLK信号により、-1はバッファのCフットに、0はCメモリフットにあります。これは、バッファがAフットに送信される内容を記憶することを意味します。正のCLKシグナルにより、すべてが正反対で、バッファの内容をコピーしますメモリ内。
ここで、コピーコマンドだけでなく、レジスタR1を1ずつ増減するコマンドもあることを覚えておいてください。 コンピューターの最終図は次のようになります。
コマンドの先頭のトリットがゼロ以外の場合、Qバッファーの出力はメモリの入力Aに直接供給されます。 ゼロの場合、Qバッファの出力は半加算器を介してメモリに供給されます(半加算器回路の最初の記事を参照)。 同様に、フラグフラグのインストール。
さて、これは鉄片がどのように見えるかです:
そして、ここに彼女のテストのビデオがあります:
各レンガを個別にテストすることは非常に便利です。ここでは、この鉄片のみの組み立て中に見つかったデッドジャンパーをすべて示します(東側のパートナーにこんにちは!)
まとめると
原則として、最終的な3桁から3桁のコンピューターを組み立てる方法は非常に明確です。ブレッドボード上ではなく、もちろん自分自身を装ってこれを行う必要があります。おおよその見積もりでは、それには数百または4つのトリムが必要になるからです。
荒い場合、 3〜3桁のコンピューターのALUには 、最後の回路の3倍(イモリごとに1つずつ)が含まれます。 もちろん、ALUには各チームの個別のスキームが含まれるため、これで終わりではありません。 合計で、ALUの残りの部分を開発し、さらにレジスタを追加し、コマンドカウンター、命令メモリ、命令デコーダー回路自体を追加する必要があります。 重すぎません。
新しいアイデアやコメントを聞いてうれしいです!