最も単純なコンピューター(Pi0K)のメモリ


13

できるだけシンプルなコンピューターを構築したいと思います。私は速度やストレージを気にしません。確かに、低速で低ストレージであることは、トランジスタ(理想的にはリレー!)で構築したいので大きな利点です。また、各状態にLEDが必要です。各クロックサイクルの実行を確認できるように、カメラをホストするRaspberry Piを介してプログラムされます(はい、GHzではなくHzで実行されます)。学校が設計を理解し、改善し、部品を購入できるようにすることを目的としたオープンな設計になります。そのため、総予算は400ポンド以下、できれば100ポンド程度でなければなりません。

私はこれを長年にわたって研究してきましたが、CPU(最小レジスタ、DIPスイッチのマイクロコード、トランジスタカウントを減らすためのビットシリアルロジック/算術演算)について良いアイデアを持っています。私が理解できないのは、メモリを取得する方法です。1024〜8096ビットが欲しいです。

私が思いつくのは、コンデンサの64 x 64グリッドへのアクセスを提供する2つの6ビットone-of-nデコーダーです。彼らは彼らの中に料金を持っているか、持っていないかのどちらかであり、読書はその状態を強化するでしょう。この「DRAM」のリフレッシュは数分または数分であるため、コンデンサにはLEDがありません(これは状態を表示しない唯一の部分であるため残念です)。

他のアイデアには、何らかの形式のテープドライブ(コンパクトカセットメカニズム:優れたストレージ、複雑すぎ、シークなし)、ドラムメモリ(豆缶の周りのテープ:メカニックが動作するのが難しすぎる)、メカニカルメモリ(バイクホイールとボールベアリング:ビットエラーが多すぎる)、コアメモリ(大きなハードフェライトコア:必要な規模に達するには依然として非常に注意が必要)、テープ/カード(テープリーダーを購入できますか)、2進数の穴の開いたディスク、および磁気ディスクストレージ用のメモリ(構築するには複雑すぎます)。

最終的には、CPUとメモリのすべての部分が「見える」学年に構築できる設計を公開することで、命令フェッチ、マイクロコードへのデコード、およびデコード/レジスタアクセス/ロジックのアドレス指定を確認できます。数分で起こります。

本当に安価なメモリ(<<£100)のアイデアがあり、それが正確にどのように機能するかが明確な場合は、教えてください。

トニー

PSの現在のプレイ状態はhttp://www.blinkingcomputer.org/にあります


既にこれや同様のことをした人のためにグーグルで調べて、デザインがそこにあります。BOMを作成して、もう少しお金と時間を必要とする可能性が高いことがわかります。
PlasmaHH

トランジスタレベルに移行することは、学校のプロジェクトにとっては少し大きいかもしれません。CMOSの小規模および中規模の統合は、はるかに実行可能で、おそらくより理解しやすいものになると思います(ゲート、レジスタ、バッファ、デコーダなど)。トランジスタからゲートを作る方法、ゲートからフリップフロップを作る方法などを示すものを含めることができます。
ツタンカーメン

1
アイデア:人々が(プログラム)メモリを手で簡単に変更できるようにして、人々が手で手動で「プログラム」できるようにする必要があります:-)。
オイビンド

まず、コンピューターに何をさせたいかを決めます。これにより、必要なメモリ量と命令セットが決定されます。
トニー・エニス

皆さんありがとう。PlasmaHH:はい、お金と時間の制約でこれを行うことは大きな挑戦です。だから誰もまだやっていません。ツタンカーメン:私は本当に各信号を見ることができるようにしたい。次に、トランジスタから論理ゲートがどのように構築されるかがわかります。oywind:はい、独自のコードを記述してWebカムで実行できるWebインターフェイスを備えたRaspberry Piを介してプログラムできます。Tony Ennis:すべての信号を表示する最も単純なコンピューターを構築したい-これはすべての側面を実証し、ビットシリアルALUなどの非標準アーキテクチャを必要とします。
トニーロビンソン

回答:


9

ディスクリートトランジスタ、IC、リレー、さらには真空管からコンピューターを構築した多くの人々がいます。4ビットマシンから32ビットまでの範囲です。もちろん、4-bittersは、構築して何でもできる最も簡単なものです。最初のマイクロプロセッサはIntelの4ビット4004でした。

自作4ビットコンピューター」をGoogleで検索することから始めます(引用符なし)。

トランジスタ化された4ビットコンピューターのボードを次に示します。

ここに画像の説明を入力してください

メモリに関しては、ディスクリートトランジスタを使用しているこれらのプロジェクトの一部は「チート」し、SRAMチップを使用しています。それらは中程度のメモリ量で信じられないほど安く、32KBは3.28ドルで、クロックやリフレッシュを必要としません。

コンピュータの残りの部分でリレーを使用している場合でも、メモリにリレーを使用すると非常に高価になります。

1Kビットで対応できる場合は、トランジスタ化されたフリップフロップを使用して1Kビットを構築できます。2048個の2N3904の価格は1個あたり3¢です(合計60ドル、さらに安価な他のコンポーネント-1/2セントの抵抗など)。PCBを1個10ドルで購入し、子供を雇って詰め込むことができます。

リレーコンピュータは1930年代後半までさかのぼり、最初の1つはハーバードマークIでした。でした。ハーバードアーキテクチャの名前の由来です(2つを組み合わせたフォンノイマンアーキテクチャと比較して、別々のプログラム空間とデータ)。

最も有名な自家製のリレーコンピューターは、ハリーポーターによって構築されたものです。

ここに画像の説明を入力してください

実行中のコンピューターのビデオをご覧ください。古い電気機械式電話交換を思い出します。

Zusieと呼ばれる別の自家製のリレーコンピューターの一部を次に示します。

ここに画像の説明を入力してください

点滅するライトがたくさん。

最後に、24個のリレーで構成される4ビット加算器のビデオへのリンクを示します。このような加算器は、コンピューターのALU(算術論理ユニット)の中核です。


申し訳ありませんが、「私はこれを長年にわたって研究してきました」は2番目の段落に埋もれています。投稿のタイトルを編集して、それが私が気にするメモリであることを明確に述べました。1Kビットでうまくいけば、トランジスタ化されたフリップフロップで1つを構築できます。2048個の2N3904の価格は1個あたり3¢です(合計60ドルに加えて、さらに安価になる他のコンポーネント-1/2セントの抵抗など)。PCBを1個10ドルで購入し、子供を雇って詰め込むことができます。
トニーロビンソン

ctd ...これは、私がゲスト化したよりも近いですが、アドレスのデコードが必要であり、メモリセルごとにより多くのトランジスタを配置します。おそらく、1トランジスタ1コンデンサの「DRAM」メモリセルも予算内で可能です。
トニーロビンソン

@TonyRobinson私は(あなたが認めたように)メモリの使用に対処しようとしましたが、個別のトランジスタやリレーでコンピュータを作りたいというあなたの希望に関する情報を提供しようとしており、いくつかがこれで成功していることを示しています。頑張ってください。
-tcrosley

6

単純なメモリが必要場合は、フリップフロップ。2つのトランジスタと4つの抵抗を使用すると、メモリ全体を確保できます。また、2つの交差結合NORゲートでフリップフロップを作成することも、既に多数のフリップフロップを含むICを購入することもできます。

実際、非常に高速なCPUキャッシュは基本的に、CPUに統合された多数のフリップフロップです。


2
DRAMは常にリフレッシュする必要があるため、より多くの電力を消費しますが、SRAMはアイドル時にわずかな静止電流しか使用しません。コンデンサを使用する理由は、ビットあたり1つのトランジスタしか必要としないため、はるかに高いメモリ密度が可能なるためです。
トムカーペンター

そのとおりです-単純なRTLフリップフロップを念頭に置いていました。明確にするために編集します。
フィルフロスト

1
ICが出ています-実際に起こっていることを隠しています。すべての信号が可能な限り露出されるようにします。私は本当に電源を気にしません-電源が問題になるのを見ることができません、それは電源が利用できるようにRaspberry Piに配線されます。以前の投稿が示唆したように、1つのトランジスタDRAMは私のコンデンサのアイデアよりもはるかに良い方法かもしれません-電荷リークを十分に低く保つために必要なトランジスタを解明する必要があります(リフレッシュ時間は分の順序)。そうでなければ、そう、フリップフロップは次善のアイデアのように見えます。
トニーロビンソン

@TonyRobinson「Raspberry Piに接続されるので、電力を利用できます。」- ...多分。Raspberry Piで利用可能な最大電力と、使用する予定のロジックファミリによって異なります。(平均的なベンチPSUがかなり多くの電力を供給できると期待しています)
-user253751

2

私は、すべてのLEDを備えた完全なコンピュータシステムを持っていることはかなりクールだと思います人間の目に見えるの状態のます。

TIM 8リレーコンピュータ 8個のコンデンサ、2個のダイオード、及びRAMメインメモリ(データメモリ)のその12バイトでバイトごとにSPDTリレーを使用します。(レジスタを含める場合、TIM 8には16バイトの可変メモリがあります)。

TIM 8リレーコンピューターは、プログラムメモリにパンチテープを使用します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

それらのダイオードをLEDに置き換えることは可能ですか?RAMのバイトに出入りするデータを示す短いパルスがありますか?おそらく、システムがDRAMを十分に高速で更新し、RAMのすべてのバイトをスキャンすると、状態のすべてのビットがそれらのLEDで表示されるように見えます(技術的には、1つの瞬間にLEDの1バイトのみがアクティブになります)。(これらのコンデンサからリレーベースのレジスタにデータをロードおよび保存する場合、これらはかなり高電流のLEDでなければなりません)。

各ビットストレージコンデンサに抵抗とLEDを配置して、すべての状態ビットを同時に表示することは可能ですか?(合理的なリフレッシュレートに十分な長さのデータを保持するコンデンサが必要な場合、これらはかなり低電流のLEDと物理的に大きなコンデンサである必要があります。一部のLEDは1 mAの電流で簡単に見ることができます。サイクルおよび(推定)コンデンサーは、コンデンサーの7 Vの充電でダウンストリームハードウェアを充電するのに十分である(推定)場合は最初に12 Vに充電され、その後、コンデンサーの定格はC〜= i * t / V = 1 mAである必要があります* 1 s /(12 V-7 V)= 200 uF)。

もちろん、これは非常に大きく、ほとんどすべての集積回路ベースのメインメモリよりも多くの人的労力がかかります。


1

単純な8ビットCPU(6502など)とごく少量のメモリ(CPUレジスタ、IC RAM、ごく少量の外部ストレージ(FD、HD、フラッシュディスクなど)を使用してみませんか。)そして、次のことをスライドで説明します。

  1. ハードウェアコンポーネント、サブコンポーネント、およびそれらの機能
  2. オペレーティングシステム、システムプログラム、およびユーザープログラム
  3. 単純なプログラムをロードして実行し、2つの数値を加算し、結果を各タイプのメモリに保存して、ビデオディスプレイに表示します。

デバイスをできるだけシンプルで安価に保ちたい場合は、ベースシステムとしてマイクロコントローラー開発システムを使用するか、Arduinoでも十分にシンプルで安価です。学生は誰も単純なリレーや真空管コンピューターを作成するつもりはありません。彼らは、プログラミングの基本を理解するための良い本とArduinoから始めるべきです。その後、外部デバイスの読み取り/制御に取り掛かりたい場合は、特定のプログラミングやエンジニアリングを掘り下げることができます。

アイデアを検討するのに適したプロジェクトを次に示します。http
//www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS


最近では「W65C02S」と呼んでいますが
イグナシオバスケス-エイブラムス

おかげで、私は6502日から来ました(BBC microだけでなく、ZX80で作業しました)。私はそのレベルで学ぶべきことがたくさんあることに同意します。実際、私はちょうどBBC Microcomputer Advanced User Guideを読み直していました。私は本当にその下のレベルになりたい、あなたは5ビット命令が入ってくるのを見る、それはいくつかのビットレジスタとバスラインを設定するマイクロコードの小さなセットを飛び越えて、すべてのロジックを見ることができるようにビットシリアルALUを呼び出す少しずつ起こっています。それが史上最も遅い理由です。
トニーロビンソン

ええ、それは遅くなります。このURLの詳細をご覧に なりましたか:instructables.com/id/How-to-Build-an-8-Bit-Computer/? ALLSTEPS 実際には非常に優れており、システムの独自のカスタマイズが可能です。
-DIYser

0

私は、神秘的なブラックボックスの中に隠されるのではなく、人間の目に見えるすべての状態のLEDを備えた完全なコンピューターシステムを持つことはかなりクールだと思います。

多かれ少なかれ標準のビット並列メモリバスの使用を検討するかもしれません-STEbus(IEEE-1000バス)のようなものかもしれません

チップ内のデータの現在の状態がパラレル出力ピンに接続されたLEDで常に見えるように、74HC273または74LS373または74HC564のようなICの束を使用してデータを保存することを検討するかもしれません。次に、8進数の3ステートバッファ(74HC241または74LS245など)またはマルチプレクサを使用して、これらのパラレル出力ピンにも接続し、データをバスに流し込みます。最終的には、いくつかのone-of-Nデコーダーチップと、8ビットのストレージごとに2つのチップになります。「これにより、RAMの各バイトに実際に保存されているデータを表示できます。」- ディスクリート部品のRAMを搭載した可能性のあるコンピュータとしてポンガイのSAP-1シンプル。同じ構成が、JaromirのFourbit CPUのレジスタまたはKyleの8ビットスパゲッティCPUのレジスタに使用されます

Mouser.comの現在の価格(2016年)は、このような配置(8ビットごとに1つのオクタルストレージラッチと1つのオクタル3ステートバッファ)で10個で約0.11ビット、500個の新しいLEDで1ビットあたり0.05ドルです。 2 ^ 9バイト= 512バイト= 2 ^ 12ビット= 4096ビット、それは(非常におおよそ)

  • 205ドルのLED
  • ストレージおよびバッファチップで450ドル
  • $ ??? 適切なストレージまたはバッファチップを選択するための1-of-Nデコーダチップ。ボード、ワイヤ、人件費などのコスト

おそらく、およそ90ドル(150ドル〜100ポンドの予算内に収まる可能性があります)で64バイトのデータメモリ(Atmel ATTINY13またはMicrochip PIC16F570と同じ量のデータメモリ)を(非常におよそ)構築できます。

これらすべてのストレージチップとバッファチップ、およびほとんどのデコーダチップを市販の32Kx8パラレルSRAMチップに置き換えて、10ドル未満ではるかに多くのストレージを提供したい理由がわかります。(アライアンスAS6C1008-55PCN、サイプレスCY7C199CN-15PXCなど)

これが、小さなニブラー4ビットCPU から印象的なRC-3リレーコンピューター に至るまで、ほとんどの自作のCPUがhttp://www.computerculture.org/2012/09/rc-3-relay-computer/である理由です http:/ /www.computerculture.org/projects/rc3/ 、メインメモリ用のブラックボックスSRAMチップに接続されています。

標準的なメモリバスのようなものを使用すると、おそらくいくつかの異なるメモリボードを同時にCPUに接続できます。

  • 数バイトの完全に可視の変数ストレージ、および数バイトの完全に可視のハードワイヤードプログラムROM。これらは、いくつかの興味深いデモプログラムに十分なはずです。
  • プログラムまたはデータ、またはその両方を保持するために時々プラグインできるSRAMチップ。それらを保存するのに十分な可視メモリをまだ構築していない場合。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.