memori untuk komputer sesederhana mungkin (Pi0K)

13

Saya ingin membangun komputer yang paling sederhana. Saya tidak peduli dengan kecepatan atau penyimpanan, memang memiliki kecepatan lambat dan penyimpanan rendah adalah keuntungan besar karena saya ingin membangunnya dari transistor (idealnya relay!) Dan saya ingin LED untuk setiap negara. Ini akan diprogram melalui Raspberry Pi yang akan meng-host kamera sehingga Anda dapat melihat setiap siklus clock dieksekusi (ya, itu akan berjalan pada Hz bukan GHz). Ini akan menjadi desain terbuka dengan maksud agar sekolah dapat membeli bagian-bagiannya, memahami dan meningkatkan desainnya. Jadi total anggaran harus di bawah £ 400, lebih disukai sekitar £ 100.

Saya telah meneliti ini selama bertahun-tahun dan memiliki ide-ide bagus untuk CPU (register minimal, mikrokode dalam DIP switch dan bit serial logic / operasi aritmatika untuk mengurangi jumlah transistor). Apa yang saya tidak tahu adalah bagaimana cara mendapatkan memori, saya ingin 1024 hingga 8096 bit.

Yang terbaik yang bisa saya lakukan adalah dua decoder 6 bit satu-of-n memberikan akses ke 64 x 64 grid kapasitor. Entah mereka memiliki muatan di dalamnya atau tidak, dan membaca akan memperkuat keadaan itu. Tidak akan ada LED pada kapasitor karena penyegaran 'DRAM' ini dalam urutan atau menit (yang memalukan karena ini akan menjadi satu-satunya bagian yang tidak menunjukkan keadaan).

Gagasan lain termasuk beberapa bentuk tape drive (mekanisme kaset kompak: penyimpanan besar, terlalu rumit, tidak ada yang mencari), memori drum (pita di sekitar kacang dapat: terlalu sulit untuk membuat mekanik bekerja), memori mekanik (roda sepeda dan bantalan bola: terlalu banyak kesalahan bit), memori inti (inti ferit besar: masih sangat sulit untuk mendapatkan skala yang diperlukan), kaset / kartu (dapatkah kita masih membeli pembaca kaset), memutar disk dengan lubang berlubang dalam urutan biner dan beberapa magnet memori untuk penyimpanan (terlalu rumit untuk dibangun).

Pada akhirnya tujuannya adalah untuk mempublikasikan desain yang dapat dibangun pada tahun ajaran dimana semua bagian dari CPU dan memori 'terlihat' dan sehingga Anda dapat melihat instruksi mengambil, decode ke microcode, dan alamat decoding / register akses / logika semua terjadi selama beberapa menit.

Jika ada yang punya ide untuk memori sangat murah (<< £ 100) di mana itu jelas cara kerjanya maka tolong beritahu saya.

Tony

Status PS saat ini adalah di http://www.blinkingcomputer.org/

Tony Robinson
sumber
Hanya berkeliling Google untuk orang-orang yang sudah melakukan ini dan hal-hal serupa, desain ada di sana, Anda dapat membuat BOM dan menemukan bahwa Anda mungkin memerlukan sedikit lebih banyak uang dan waktu.
PlasmaHH
Saya akan menyarankan bahwa pergi ke level transistor mungkin sedikit banyak untuk proyek sekolah. Saya akan berpikir CMOS integrasi skala kecil dan menengah akan jauh lebih bisa dilakukan dan mungkin lebih dimengerti (gerbang, register, buffer, decoder, dll.). Anda dapat memasukkan sesuatu yang menunjukkan bagaimana gerbang dibuat dari transistor, sandal jepit dibuat dari gerbang, dll.).
Tut
1
Hanya sebuah ide: Anda harus membuat memori (program) mudah dimodifikasi dengan tangan, sehingga orang dapat "memprogram" secara manual dengan tangan mereka :-).
oyvind
Pertama-tama tentukan apa yang Anda inginkan agar komputer dapat lakukan. Itu akan menentukan berapa banyak memori yang Anda butuhkan dan set instruksi apa yang seharusnya.
Tony Ennis
Terima kasih semuanya. PlasmaHH: Ya, ini adalah tantangan besar untuk melakukan ini dalam masalah uang dan waktu, itu sebabnya belum ada orang lain yang melakukannya. Tut: Saya benar-benar ingin dapat melihat setiap sinyal. Orang kemudian akan melihat bagaimana gerbang logika dibangun dari transistor. oywind: Ya, itu akan dapat diprogram melalui Raspberry Pi dengan antarmuka web yang Anda dapat menulis kode Anda sendiri dan melihatnya berjalan dengan web cam. Tony Ennis: Saya ingin membangun komputer paling sederhana yang menunjukkan setiap sinyal - ini akan menunjukkan semua aspek dan memerlukan arsitektur yang tidak standar, seperti ALU bit-serial.
Tony Robinson

Jawaban:

9

Ada banyak orang yang telah membangun komputer dari transistor diskrit, IC, relay, dan bahkan tabung vakum. Mulai dari mesin 4-bit hingga 32-bit. 4-pahit tentu saja akan menjadi yang paling sederhana yang dapat Anda bangun dan lakukan apa saja. Mikroprosesor pertama adalah Intel 4-bit 4004 .

Saya akan mulai dengan mencari di Google untuk " komputer 4-bit buatan sendiri " (tanpa tanda kutip).

Berikut papan dari komputer 4-bit yang di-transistorized:

masukkan deskripsi gambar di sini

Sejauh ingatannya, beberapa proyek ini yang sebaliknya menggunakan transistor diskrit "curang" dan menggunakan chip SRAM. Mereka sangat murah untuk jumlah memori yang moderat, 32KB adalah $ 3,28 dan tidak memerlukan jam dan tidak ada refresh.

Bahkan jika komputer Anda menggunakan relay, menggunakannya untuk memori akan menjadi sangat mahal.

Jika Anda dapat bertahan dengan bit 1K, Anda bisa membuatnya dengan transistor sandal jepit; 2048 2N3904 akan dikenakan biaya 3 ¢ masing-masing ($ 60 sama sekali, ditambah komponen lain yang akan lebih murah - resistor untuk 1/2 sen dll). Anda bisa mendapatkan PCB masing-masing seharga $ 10, lalu menyewa seorang anak untuk mengisinya.

Relay komputer tanggal semua kembali cara untuk tahun 1930-an, dan salah satu yang pertama adalah Harvard Mark I . Di sinilah nama arsitektur Harvard berasal (memisahkan ruang program dan data, dibandingkan dengan arsitektur von Neumann yang menggabungkan keduanya).

Komputer relay buatan rumah yang paling terkenal adalah komputer yang dibangun oleh Harry Porter.

masukkan deskripsi gambar di sini

Lihat video komputer yang sedang berjalan. Mengingatkan saya pada pertukaran telepon elektromekanis lama.

Berikut adalah bagian dari komputer relay buatan sendiri yang disebut Zusie :

masukkan deskripsi gambar di sini

Banyak lampu berkedip.

Dan akhirnya, inilah tautan ke video dari penambah 4-bit, yang terdiri dari 24 relai. Adders seperti ini adalah jantung dari ALU (unit logika aritmatika) di komputer.

tcrosley
sumber
Maaf, "Saya telah meneliti ini selama bertahun-tahun" dimakamkan di paragraf kedua. Saya telah mengedit judul tulisan untuk menyatakan dengan jelas bahwa itu adalah memori yang saya pedulikan. Jika Anda dapat bertahan dengan 1K bit, Anda dapat membangunnya dengan sandal jepit transistor; 2048 2N3904 akan dikenakan biaya 3 ¢ masing-masing ($ 60 sama sekali, ditambah komponen lain yang akan lebih murah - resistor untuk 1/2 sen dll). Anda bisa mendapatkan PCB masing-masing seharga $ 10, lalu menyewa seorang anak untuk mengisinya.
Tony Robinson
ctd ... ini lebih dekat dari yang saya duga, tetapi Anda perlu decoding alamat dan saya akan memasukkan lebih banyak transistor per sel memori. Mungkin satu sel transistor satu kapasitor 'DRAM' juga mungkin sesuai anggaran.
Tony Robinson
@TonyRobinson Saya memang mencoba mengatasi penggunaan memori (seperti yang Anda akui) tetapi saya juga berusaha memberikan informasi tentang keinginan Anda untuk membuat komputer dari transistor dan / atau relay diskrit, dan untuk menggambarkan bahwa beberapa telah berhasil dalam hal ini. Semoga beruntung dengan usahamu.
tcrosley
6

Jika Anda ingin memori sederhana , maka terlihat tidak lebih jauh dari flip-flop . Dengan dua transistor dan empat resistor, Anda dapat memiliki sedikit memori. Anda juga dapat membuat flip-flop dengan dua gerbang NOR yang berpasangan silang, atau cukup membeli IC dengan sekelompok sandal jepit di dalamnya.

Bahkan, cache CPU yang sangat cepat pada dasarnya adalah sekelompok sandal jepit, terintegrasi ke dalam CPU.

Phil Frost
sumber
2
DRAM lebih memakan daya karena harus disegarkan secara terus-menerus sementara SRAM hanya menggunakan arus diam kecil saat idle. Alasan untuk menggunakan kapasitor adalah karena hanya membutuhkan satu transistor per bit, sehingga memungkinkan kepadatan memori yang jauh lebih tinggi.
Tom Carpenter
Anda benar - ada dalam pikiran saya RTL flip-flop sederhana. Saya akan mengedit untuk menjelaskan.
Phil Frost
1
IC keluar - mereka menyembunyikan apa yang sebenarnya terjadi. Saya ingin setiap sinyal diekspos sejauh mungkin. Saya benar-benar tidak peduli dengan daya - Saya tidak bisa melihat daya menjadi masalah, itu akan ditransfer ke Raspberry Pi sehingga daya tersedia. Satu transistor DRAM mungkin merupakan cara yang jauh lebih baik daripada array ide kapasitor saya seperti yang disarankan pada posting sebelumnya - saya harus mencari tahu transistor apa yang diperlukan untuk menjaga agar kebocoran muatan tetap rendah (saya perlu waktu refresh di urutan menit). Lain, ya, sandal jepit terlihat seperti ide terbaik berikutnya.
Tony Robinson
@TonyRobinson "Ini akan ditransfer ke Raspberry Pi sehingga daya tersedia." - ...mungkin. Tergantung pada daya maksimum yang tersedia melalui Raspberry Pi, dan keluarga logika mana yang Anda rencanakan untuk digunakan. (Saya berharap bahwa bangku PSU rata-rata akan dapat memasok daya lebih sedikit, meskipun)
user253751
2

Saya setuju bahwa itu akan sangat keren untuk memiliki sistem komputer lengkap dengan LED untuk setiap bit negara, terlihat oleh mata manusia.

The TIM 8 estafet komputer menggunakan 8 kapasitor, 2 dioda, dan satu SPDT estafet per byte di 12 byte dari memori utama RAM (memori data). (TIM 8 memiliki 16 byte memori variabel jika Anda memasukkan register).

Komputer relai TIM 8 menggunakan punch tape untuk memori programnya.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Apakah mungkin untuk mengganti dioda itu dengan LED, jadi ada pulsa singkat yang menunjukkan data masuk atau keluar dari byte RAM? Mungkin jika sistem melakukan DRAM refresh cukup cepat, memindai setiap byte RAM, maka setiap bit negara akan terlihat terlihat pada LED tersebut (meskipun secara teknis hanya satu byte LED akan diaktifkan pada satu saat). (Itu harus menjadi LED dengan arus cukup tinggi jika kita ingin LOAD dan MENYIMPAN data dari kapasitor tersebut ke register berbasis relai).

Apakah mungkin untuk meletakkan resistor dan LED di setiap kapasitor penyimpanan bit, benar-benar secara bersamaan menunjukkan setiap bit negara? (Itu harus menjadi LED dengan arus cukup rendah dan kapasitor secara fisik besar jika kita ingin kapasitor menahan data cukup lama untuk kecepatan refresh yang masuk akal. Beberapa LED dapat dengan mudah dilihat hanya dengan arus 1 mA. Dengan refresh 1 detik. siklus dan (tebak tebakan) kapasitor awalnya dibebankan ke 12 V meskipun (tebak tebakan) muatan 7 V pada kapasitor sudah cukup untuk mengisi daya perangkat keras hilir, maka kapasitor membutuhkan peringkat C ~ = i * t / V = ​​1 mA * 1 s / (12 V - 7 V) = 200 uF.).

Ini, tentu saja, akan jauh lebih besar dan membutuhkan lebih banyak tenaga manusia untuk berkumpul daripada cukup banyak memori utama berbasis sirkuit terintegrasi.

davidcary
sumber
1

Mengapa Anda tidak menggunakan CPU 8 bit sederhana (mis. 6502) & jumlah memori yang sangat kecil (register CPU, IC RAM, & sejumlah kecil penyimpanan eksternal (mis: FD, HD, atau flash disk, dll.) .) & lalu jelaskan dengan slide berikut ini:

  1. Komponen perangkat keras, sub-komponen, & fungsinya
  2. Sistem operasi, program sistem, & program pengguna
  3. Muat & jalankan program sederhana untuk menambahkan 2 angka bersamaan, simpan hasilnya di setiap jenis memori & tampilkan di layar video.

Jika Anda ingin menjaga perangkat sesederhana & semurah mungkin, gunakan sistem pengembangan pengontrol mikro sebagai sistem dasar Anda atau bahkan Arduino sederhana & cukup murah. Tidak ada siswa yang akan membangun relay sederhana atau komputer tabung hampa udara - juga tidak ada yang benar-benar ingin mereka melakukannya. Mereka harus memulai dengan buku yang bagus & Arduino untuk pemahaman dasar pemrograman. Kemudian nanti, jika mereka ingin membaca / mengendalikan perangkat eksternal, mereka dapat mempelajari pemrograman atau teknik tertentu.

Berikut adalah proyek yang bagus untuk Anda pertimbangkan untuk ide-ide:
http://www.instructables.com/id/Bagaimana-Build-an-8-Bit-Computer/?ALLSTEPS

DIYser
sumber
Meskipun saat ini kami menyebutnya " W65C02S "
Ignacio Vazquez-Abrams
Terima kasih, saya datang dari 6502 hari (BBC mikro tetapi saya juga bekerja pada ZX80). Saya setuju bahwa ada banyak yang harus dipelajari pada tingkat itu, memang saya baru saja membaca ulang Panduan Pengguna Lanjutan Mikro Mikro BBC . Saya benar-benar ingin menjadi level di bawahnya, Anda melihat instruksi 5-bit masuk, ia melompati serangkaian kecil kode mikro yang mengatur register bit dan jalur bus dan memanggil sedikit serial ALU sehingga Anda dapat melihat semua logika terjadi sedikit demi sedikit. Itu sebabnya itu akan menjadi yang paling lambat.
Tony Robinson
Ya - itu akan lebih lambat. Apakah Anda melihat detail di url ini: instructables.com/id/Bagaimana- untuk- Build-an-8-Bit-Computer/? ALLSTEPS Ini sebenarnya cukup bagus & memungkinkan beberapa penyesuaian unik untuk sistem Anda.
DIYser
0

Saya setuju bahwa itu akan sangat keren untuk memiliki sistem komputer lengkap dengan LED untuk setiap bit negara, terlihat oleh mata manusia, daripada tersembunyi di dalam kotak hitam misterius.

Anda mungkin mempertimbangkan untuk menggunakan bus memori paralel-bit yang kurang lebih standar - mungkin sesuatu seperti STEbus (IEEE-1000 bus) .

Anda dapat mempertimbangkan menggunakan sekelompok IC seperti 74HC273 atau 74LS373 atau 74HC564 untuk menyimpan data sehingga keadaan saat ini data di dalam chip selalu terlihat pada LED yang terhubung ke pin output paralel. Kemudian gunakan buffer 3-negara oktal (seperti 74HC241 atau 74LS245) atau muxes, juga terhubung ke pin output paralel, untuk menyalurkan data ke dalam bus. Anda berakhir dengan beberapa chip decoder satu-of-N dan 2 chip per 8 bit penyimpanan. "Ini memungkinkan Anda ... untuk melihat data apa yang sebenarnya disimpan dalam setiap byte RAM." - Pong Guy's SAP-1 Sesederhana Kemungkinan Komputer dengan RAM Komponen Diskrit . Pengaturan yang sama digunakan untuk register di CPU Fourbit Jaromir atau register dalam CPU spaghetti 8 bit Kyle .

Harga saat ini (2016) dari Mouser.com adalah sekitar $ 0,11 / bit dalam jumlah 10 untuk pengaturan seperti itu (satu kait penyimpanan oktal ditambah satu buffer 3-negara oktal per 8 bit), dan $ 0,05 / bit untuk LED baru dalam jumlah 500. Untuk 2 ^ 9 byte = 512 byte = 2 ^ 12 bit = 4096 bit, itu (sangat kasar)

  • $ 205 dalam LED
  • $ 450 dalam chip penyimpanan dan buffer
  • $ ??? chip decoder 1-of-N untuk memilih penyimpanan atau chip buffer yang sesuai; biaya papan, kawat, tenaga kerja, dan lain-lain

Mungkin Anda dapat membangun (sangat kasar) 64 byte memori data (jumlah memori data yang sama dengan Atmel ATTINY13 atau Microchip PIC16F570) dengan harga sekitar $ 90 (yang mungkin sesuai dengan anggaran $ 150 ~ = £ 100 Anda).

Anda dapat melihat mengapa tergoda untuk mengganti semua chip penyimpan dan penyangga dan sebagian besar chip decoder dengan chip SRAM paralel 32Kx8 paralel yang memberi Anda penyimpanan lebih banyak dengan harga kurang dari $ 10. (Aliansi AS6C1008-55PCN, Cypress CY7C199CN-15PXC, dll.)

Inilah sebabnya mengapa kebanyakan CPU buatan sendiri, dari Nibbler 4 Bit CPU yang kecil hingga RC-3 Relay Computer yang mengesankan http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , dihubungkan ke chip SRAM kotak hitam untuk memori utama.

Dengan sesuatu seperti bus memori standar, mungkin Anda dapat memiliki beberapa papan memori yang berbeda yang terhubung ke CPU secara bersamaan:

  • Beberapa byte dari penyimpanan variabel yang benar-benar terlihat, dan beberapa byte dari program ROM kabel yang terlihat sepenuhnya, yang seharusnya cukup untuk beberapa program demo yang menarik.
  • Chip SRAM yang kadang-kadang dapat dipasang untuk menyimpan program atau data atau keduanya ketika Anda belum membangun memori yang cukup terlihat untuk menyimpannya.
davidcary
sumber
0

Berikut saran lain untuk proyek serupa yang mungkin bermanfaat - buat Mesin Turing . Ini tentang mesin komputasi paling sederhana yang mungkin

Dirk Bruere
sumber