mümkün olan en basit bilgisayar için bellek (Pi0K)


13

Mümkün olan en basit bilgisayarı kurmak istiyorum. Hız veya depolama umurumda değil, gerçekten yavaş hız ve düşük depolama sahip olmak büyük bir avantaj, çünkü transistörlerden (ideal olarak röleler!) İnşa etmek istiyorum ve her durum için bir LED istiyorum. Her saat döngüsünün yürütülmesini görebilmeniz için bir kamera barındıracak olan bir Ahududu Pi ile programlanacaktır (evet, GHz'de değil Hz'de çalışacaktır). Okulların parçaları satın alabilmesi, tasarımı anlayabilmesi ve geliştirebilmesi amacıyla açık bir tasarım olacaktır. Dolayısıyla toplam bütçe 400 £ 'un altında, tercihen yaklaşık 100 £ olmalıdır.

Bunu uzun yıllar boyunca araştırdım ve CPU için iyi fikirlerim var (minimum kayıtlar, DIP anahtarlarında mikro kod ve transistör sayısını azaltmak için bit seri mantık / aritmetik işlemler). Anlayamadığım şey hafızayı nasıl alacağım, 1024 ila 8096 bit istiyorum.

Gelebileceğim en iyi şey, 64 x 64 kapasitör ızgarasına erişim sağlayan iki adet 6 bitlik n kod çözücüdür. Ya içlerinde bir suçlama var ya da yok, ve okumak bu durumu pekiştirecektir. Bu 'DRAM'ın yenilenmesi sırayla veya dakikalar içinde olacağı için kapasitörlerde herhangi bir LED olmayacaktır (bu durum göstermemenin tek parçası olduğu için utanç vericidir).

Diğer fikirler arasında bir tür teyp sürücüsü (kompakt kaset mekanizması: büyük depolama, çok karmaşık, arayış yok), davul belleği (bir fasulye etrafındaki bant: mekaniği çalıştırmak için çok zor), mekanik bellek (bisiklet tekerleği ve bilyalı rulmanlar: çok fazla bit hatası), çekirdek bellek (büyük sert ferrit çekirdekler: gerekli ölçekte doğru almak için hala çok zor), teyp / kart (teyp okuyucularını satın alabilir miyiz), ikili düzende delikli delikli disk ve bazı manyetik depolama için bellek (inşa etmek için çok karmaşık).

Nihayetinde amaç, bir CPU ve belleğin tüm bölümlerinin 'görünür' olduğu bir okul yılında inşa edilebilecek bir tasarım yayınlamaktır ve böylece talimat getirme, mikrokodda kod çözme ve adres kod çözme / kayıt erişimi / mantığını görebilirsiniz. dakikalar içinde oluyor.

Herkes gerçekten ucuz bellek (<< £ 100) tam olarak nasıl çalıştığı hakkında fikirleri varsa o zaman lütfen bana bildirin.

Tony

PS'nin mevcut oyun durumu http://www.blinkingcomputer.org/ adresinde


Sadece bu ve benzeri şeyler yapan insanlar için google, tasarımlar var, bir malzeme listesi yapabilir ve muhtemelen biraz daha fazla para ve zamana ihtiyacınız olduğunu bulabilirsiniz.
PlazmaHH

Transistör seviyesine gitmenin bir okul projesi için biraz fazla olabileceğini öneririm. CMOS küçük ve orta ölçekli entegrasyonun çok daha yapılabilir ve muhtemelen daha anlaşılır olacağını düşünüyorum (kapılar, kayıtlar, tamponlar, kod çözücüler, vb.). Kapıların transistörlerden nasıl yapıldığını, parmak arası terliklerin kapılardan nasıl yapıldığını gösteren bir şey ekleyebilirsiniz.
Tut

1
Sadece bir fikir: (program) belleği elle kolayca değiştirilebilir hale getirmelisiniz, böylece insanlar elleriyle elle "programlayabilirler :-).
oyvind

Öncelikle bilgisayarın ne yapmasını istediğinize karar verin. Bu, ne kadar belleğe ihtiyacınız olduğunu ve talimat setinin ne olması gerektiğini belirleyecektir.
Tony Ennis

Hepinize teşekkürler. PlasmaHH: Evet, bunu para ve zaman kısıtlamalarında yapmak büyük bir zorluk, bu yüzden henüz kimse yapmadı. Tut: Gerçekten her sinyali görebilmek istiyorum. İnsanlar daha sonra mantık kapılarının transistörlerden nasıl inşa edildiğini görecekler. oywind: Evet, kendi kodunuzu yazabileceğiniz ve bir web kamerasıyla çalıştığını görebileceğiniz bir web arayüzlü bir Raspberry Pi ile programlanabilir. Tony Ennis: Her sinyali gösteren en basit bilgisayarı inşa etmek istiyorum - bu tüm yönleri gösterecek ve standart olmayan mimarileri, böyle bir bit seri ALU'yu gerektirecek.
Tony Robinson

Yanıtlar:


9

Ayrık transistörler, IC'ler, röleler ve hatta vakum tüplerinden bilgisayarlar inşa eden birçok insan var. Bunlar 4-bit makinelerden 32-bit'e kadar değişir. Elbette 4-acı, inşa edebileceğiniz ve yapabileceğiniz en basit şey olacaktır. İlk mikroişlemci Intel'in 4-bit 4004'üydü .

Google'da " ev yapımı 4 bit bilgisayarları " (tırnak işaretleri olmadan) arayarak başlardım .

Transistörlü bir 4 bit bilgisayardan bir tahta:

resim açıklamasını buraya girin

Hafızaya gelince, aksi takdirde ayrık transistörler kullanan bu projelerden bazıları "hile" ve SRAM yongaları kullanıyor. Orta derecede bellek için inanılmaz derecede ucuzlar , 32KB $ 3.28 ve saat ve yenileme gerektirmiyor.

Bilgisayarınızın geri kalanı röleler kullansa bile, bellek için bunları kullanmak oldukça pahalı olacaktır.

1K bitlerle başa çıkabilirseniz, transistörlü parmak arası terliklerle bir tane oluşturabilirsiniz; 2048 2N3904'ler 3 ¢ mal olacak (toplam 60 $, artı daha ucuz olacak diğer bileşenler - 1/2 cent için direnç vb.). PCB'leri 10 $ karşılığında alabilirsin, sonra onları doldurması için bir çocuk kiralayabilirsin.

Röle bilgisayarları 1930'ların sonlarına kadar uzanır ve ilklerinden biri Harvard Mark I idi . Harvard mimarisi adının geldiği yer ( ikisini birleştiren von Neumann mimarisine kıyasla ayrı program alanı ve veriler ).

En ünlü ev demleme röle bilgisayarı Harry Porter tarafından inşa edilen bir bilgisayardır .

resim açıklamasını buraya girin

Çalışan bilgisayarın videolarına bakın. Bana eski bir elektromekanik telefon santralini hatırlatıyor.

İşte Zusie adlı başka bir ev demeti röle bilgisayarının bir kısmı :

resim açıklamasını buraya girin

Yanıp sönen ışıklar bir sürü.

Ve son olarak, 24 röleden oluşan 4 bitlik bir toplayıcının videosuna bir bağlantı . Bunun gibi toplayıcılar bir bilgisayardaki ALU'nun (aritmetik mantık birimi) kalbidir.


Maalesef, "Bunu uzun yıllar araştırdım" ikinci paragrafa gömüldü. Önem verdiğim hafızayı açıkça belirtmek için yazının başlığını düzenledim. 1K bit ile geçebilirseniz, transistörlü parmak arası terliklerle bir tane oluşturabilirsiniz; 2048 2N3904'ler 3 ¢ mal olacak (toplam 60 $, artı daha ucuz olacak diğer bileşenler - 1/2 cent için direnç vb.). PCB'leri 10 $ karşılığında alabilirsin, sonra onları doldurması için bir çocuk kiralayabilirsin.
Tony Robinson

ctd ... bu benim misafir ettiğimden daha yakın, ama adres kod çözme gerekiyor ve ben bellek hücre başına daha fazla transistör koymak istiyorum. Belki bir transistör bir kapasitör 'DRAM' bellek hücresi de bütçe dahilinde mümkündür.
Tony Robinson

@TonyRobinson Ben bellek isuse (çalıştığınız gibi) ele çalıştım ama aynı zamanda ayrı transistörler ve / veya röleleri bir bilgisayar yapmak ve bu konuda birkaç başarılı olduğunu göstermek için bir istek yapmak için bilgi sağlamaya çalışıyordu. Çabalarınızda iyi şanslar.
tcrosley

6

Basit bir bellek istiyorsanız , bir flip-floptan daha uzağa bakmayın . İki transistör ve dört dirençle, bir miktar belleğe sahip olabilirsiniz. Ayrıca, iki çapraz bağlı NOR geçidi ile bir flip-flop yapabilir veya zaten içinde bir sürü flip-flop bulunan bir IC satın alabilirsiniz.

Aslında, çok hızlı CPU önbelleği temelde CPU'ya entegre edilmiş bir grup parmak arası terliktir.


2
DRAM, sürekli olarak yenilenmesi gerektiğinden daha fazla güç tüketirken, SRAM boştayken sadece küçük bir sessiz akım kullanır. Kapasitörlerin kullanılmasının nedeni, bit başına sadece bir transistör gerektirmesidir, bu nedenle çok daha yüksek bellek yoğunluklarına izin verir .
Tom Carpenter

Haklısın - aklımda basit RTL parmak arası terlik vardı. Açıklığa kavuşturmak için düzenleyeceğim.
Phil Frost

1
IC'ler çıktı - gerçekten olanları gizliyorlar. Her sinyalin mümkün olduğunca açığa çıkmasını istiyorum. Gücü gerçekten umursamıyorum - gücün sorun olduğunu göremiyorum, güç mevcut olması için bir Raspberry Pi'ye bağlanacak. Bir transistör DRAM, önceki gönderinin önerdiği gibi kapasitörler dizimden daha iyi bir yol olabilir - şarj sızıntısını yeterince düşük tutmak için hangi transistörlerin gerekli olduğunu bulmam gerekecek ( dakika sırası). Başka, evet, flip flop'lar en iyi fikir gibi görünüyor.
Tony Robinson

@TonyRobinson "Bir Raspberry Pi'ye bağlanacak, böylece güç mevcut." - ...olabilir. Bir Raspberry Pi aracılığıyla mevcut olan maksimum güce ve kullanmayı planladığınız mantık ailesine bağlıdır. (Ortalama bir tezgah
PSU'sunun

2

İnsan gözünün görebildiği her durum için LED'li eksiksiz bir bilgisayar sistemine sahip olmanın oldukça havalı olacağını kabul ediyorum .

TİM 8 röle bilgisayar 8 kapasitörler, 2 diyot ve RAM ana bellek (veri bellek), 12 bayt bayt başına bir SPDT röle kullanır. (Kayıtları eklerseniz TIM 8'in 16 bayt değişken belleği vardır).

TIM 8 röle bilgisayarı program belleği için delikli bant kullanır.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Bu diyotları LED'lerle değiştirmek mümkün mü, bu nedenle RAM baytına giren veya çıkan verileri gösteren kısa bir darbe var mı? Belki de sistem DRAM her bayt RAM'i tarayarak yeterince hızlı bir şekilde yenilenirse, o zaman her LED durumu bu LED'lerde görünür gibi görünebilir (teknik olarak herhangi bir anda sadece bir bayt LED etkinleştirilir). (Bu kapasitörlerden röle tabanlı kayıtlara veri yüklemek ve depolamak istiyorsak, bunların oldukça yüksek akım LED'leri olması gerekir).

Her bit depolama kapasitörüne bir direnç ve bir LED yerleştirmek mümkün mü, aynı anda her bit durumunu gösterir mi? (Kapasitörün verileri makul bir yenileme hızı için yeterince uzun süre tutmasını istiyorsak, bunlar oldukça düşük akım LED'leri ve fiziksel olarak büyük kapasitörler olmalıdır. Bazı LED'ler sadece 1 mA akımla kolayca görülebilir. 1 saniyelik bir yenileme ile aşağı akım donanımını şarj etmek için kapasitördeki 7 V'luk bir şarj yeterli olsa da, başlangıçta 12 V'a şarj edilmiş döngü ve (tahmin uyarıcı) kapasitörler, daha sonra kapasitör C ~ = i * t / V = ​​1 mA değerine ihtiyaç duyar * 1 s / (12 V - 7 V) = 200 uF.).

Bu, elbette, büyük ölçüde daha büyük olacak ve birleştirilmesi neredeyse tüm entegre devre tabanlı ana hafızalardan daha fazla alacaktır.


1

Neden sadece basit bir 8 bit CPU (örn. 6502) ve çok az miktarda bellek (CPU kayıtları, IC RAM ve çok az miktarda harici depolama (örneğin: FD, HD veya flash disk, vb.) Kullanmıyorsunuz? .) & sonra sadece slaytlarla aşağıdakileri açıklayın:

  1. Donanım bileşenleri, alt bileşenler ve işlevleri
  2. İşletim sistemi, sistem programları ve kullanıcı programları
  3. Birlikte 2 sayı eklemek için basit bir program yükleyin ve yürütün, sonucu her bellek türünde saklayın ve video ekranında görüntüleyin.

Cihazı olabildiğince basit ve ucuz tutmak istiyorsanız, temel sisteminiz olarak bir mikro denetleyici geliştirme sistemi kullanın, hatta bir Arduino bile yeterince basit ve ucuzdur. Öğrencilerin hiçbiri basit bir röle veya vakum tüplü bilgisayar inşa etmeyecek - ne de gerçekten bunu yapmasını istememelisiniz. Programlamanın temel anlayışı için iyi bir kitap ve bir Arduino ile başlamalıdırlar. Daha sonra, harici cihazları okumak / kontrol etmek istiyorlarsa, belirli programlamaya veya mühendisliğe girebilirler.

Fikirler için düşünmeniz gereken iyi bir proje:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS


Bugünlerde rağmen buna " W65C02S "
Ignacio Vazquez-Abrams'ı

Teşekkürler, 6502 günden geliyorum (BBC mikro ama aynı zamanda ZX80 üzerinde çalıştım). Bu seviyede öğrenilecek çok şey olduğunu kabul ediyorum, aslında sadece BBC Microcomputer Gelişmiş Kullanım Kılavuzunu tekrar okuyordum . Gerçekten bunun altında bir seviye olmak istiyorum, 5 bitlik bir komutun geldiğini görüyorsunuz, birkaç bit kayıt ve otobüs hattı ayarlayan küçük bir mikrokod setinden atlıyor ve tüm mantığı görebilmeniz için biraz seri ALU çağırıyor yavaş yavaş oluyor. Bu yüzden şimdiye kadar en yavaş olacak.
Tony Robinson

Evet - bu daha yavaş olacak. Bu url'deki ayrıntılara baktınız mı: instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS Aslında oldukça iyi ve sisteminiz için benzersiz bir özelleştirmeye izin veriyor.
DIYser

0

Gizemli bir kara kutunun içine gizlenmek yerine, insan gözünün görebildiği her durum için LED'li eksiksiz bir bilgisayar sistemine sahip olmanın oldukça havalı olacağını kabul ediyorum.

Belki de STEbus (IEEE-1000 veri yolu) gibi daha fazla veya daha az standart bit paralel bellek veri yolu kullanmayı düşünebilirsiniz .

Verileri saklamak için 74HC273 veya 74LS373 veya 74HC564 gibi bir grup IC kullanmayı düşünebilirsiniz, böylece çip içindeki verilerin mevcut durumu paralel çıkış pimlerine bağlı LED'lerde her zaman görünür olur. Daha sonra veriyi veriyoluna yönlendirmek için sekizli 3 durumlu tamponlar (74HC241 veya 74LS245 gibi) veya bu paralel çıkış pimlerine bağlı olan muksiler kullanın. Birkaç tane N-dekoder çipi ve 8 bit depolama başına 2 çip ile sonuçlanırsınız. "Bu size ... RAM'in her baytında gerçekte hangi verilerin depolandığını görüntülemenizi sağlar." - Ayrık Bileşen RAM'li Pong Guy'ın SAP-1 Olabildiğince Basit . Jaromir'in Fourbit CPU'sundaki kayıtlar veya Kyle'ın 8 bit spagetti CPU'sundaki kayıtlar için aynı düzenleme kullanılır .

Mouser.com'dan şu anki (2016) fiyatlar, böyle bir düzenleme için adet 10'da yaklaşık 0.11 $ / bit (bir sekizli depolama mandalı artı 8 bit başına bir sekizli 3 durumlu tampon) ve adet 500'deki yeni LED'ler için 0.05 $ / bit. 2 ^ 9 bayt = 512 bayt = 2 ^ 12 bit = 4096 bit, bu (çok kabaca)

  • LED'lerde 205 $
  • Depolama ve tampon çiplerinde 450 $
  • , $ ??? uygun depolama veya tampon çipini seçmek için 1-N-dekoder çipleri; panoların maliyeti, tel, işçilik vb.

Belki de (çok kabaca) 64 bayt veri belleği (Atmel ATTINY13 veya Microchip PIC16F570 ile aynı miktarda veri belleği) yaklaşık 90 $ (150 $ = 100 £ bütçenize sığabilecek) için oluşturabilirsiniz.

Tüm bu depolama ve tampon yongalarını ve kod çözücü yongalarının çoğunu, 10 dolardan daha düşük bir fiyata çok daha fazla depolama alanı sağlayan hazır 32Kx8 paralel SRAM yonga ile değiştirmenin neden cazip olduğunu görebilirsiniz. (Birlik AS6C1008-55PCN, Selvi CY7C199CN-15PXC, vb.)

Bu nedenle, küçük Nibbler 4 Bit CPU'dan etkileyici RC-3 Röle Bilgisayarına kadar ev yapımı CPU'ların çoğu http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , ana bellek için bir kara kutu SRAM çipine bağlanır .

Standart bir bellek veri yolu gibi bir şeyle, belki de aynı anda CPU'ya bağlı birkaç farklı bellek kartına sahip olabilirsiniz:

  • Birkaç bayt tamamen görünür değişken depolama ve birkaç bayt tamamen görünür sabit kablolu program ROM, ki bu bazı ilginç demo programları için yeterli olmalıdır.
  • Programları veya verileri veya her ikisini birden tutmak için zaman zaman takılabilen bir SRAM yongası, bunları saklamak için henüz tamamen görünür bir bellek oluşturmadıysanız.

0

İşte size değerli olabilecek benzer bir proje için başka bir öneri - bir Turing Makinesi inşa edin.Mümkün olan en basit bilgi işlem makinesi hakkında

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.