3にカウント:4

アイデアの実行可能性の検証:1桁のコンピューター



これは4番目の記事であり、準備ができ次第続けます。 目次:





これは、ハードウェアの主要部分がどのように見えるかであり、今日議論されます(ジャンパーの神へのより多くのジャンパー!):







近未来:3台のコンピューターコンピューティングコマンドシステム



私が言ったように、私の目標は、三元論理で動作する、プリミティブであるが具体的な、プログラム可能なハードウェアを構築することです。 これまでのところ、私はここで提案されている次のコマンドシステムに傾倒しています。





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の残りの部分を開発し、さらにレジスタを追加し、コマンドカウンター、命令メモリ、命令デコーダー回路自体を追加する必要があります。 重すぎません。



新しいアイデアやコメントを聞いてうれしいです!



All Articles