Komputer do pieczenia [zamknięty]

19

Czy możliwe jest stworzenie prostego komputera w całości z płytkami chlebowymi i podstawowymi elementami elektronicznymi? Czy można na przykład skonstruować w ten sposób kalkulator naukowy?

CT
źródło
10
Jest to nie tylko możliwe, ale ludzie to robią, np. Megaprocessor.com i wiele innych, po prostu google dla „dyskretnego procesora tranzystorowego” lub podobnego. Po prostu staje się strasznie skomplikowany i zajmuje lata do zbudowania i debugowania
PlasmaHH
Nie zależy od tego, co masz na myśli. Jeśli zawiera Veroboard, paski z tagami lub konstrukcję martwego robaka zakotwiczoną gwoździami wbitymi w (tak) matkę - wszystko to przylutowane, to zdecydowanie. Jeśli masz na myśli te plastikowe rzeczy, które losowo puszczają druty, zapomnij o tym ...
Brian Drummond
@BrianDrummond Re plastikowe deski do krojenia - to podobno możliwe (patrz moja odpowiedź). Widziałem kilka komputerów zbudowanych w ten sposób. Jeśli ktoś przypadkowo wyciągnął jakieś przewody, co za koszmar. Jestem naprawdę zaskoczony, że tak naprawdę biegną.
tcrosley,
2
Myślę, że gdybyś miał nieskończone deski do krojenia chleba, byłbyś gotowy?
PyRulez
2
Naprawdę trzeba odkryć Homebrew procesora „pierścień internetowej” (który był rzeczą w drodze powrotnej w latach 90. przed wyszukiwarka dominuje w internecie): members.iinet.net.au/~daveb/simplex/ringhome.html
slebetman

Odpowiedzi:

33

Nie zgadzam się, że umieszczenie mikrokontrolera na płycie kontrolnej kwalifikuje się jako zbudowanie komputera na płycie kontrolnej. Z wyjątkiem I / O (takich jak klawiatura i wyświetlacz) sam mikrokontroler jest prawie kompletnym komputerem. Samo umieszczenie go na płycie chlebowej i podłączenie kilku przewodów jest banalne i można to zrobić w ciągu dziesięciu minut.

Kiedy OP zapytał: „Czy możliwe jest stworzenie prostego komputera w całości z płytkami ściennymi i podstawowymi komponentami elektronicznymi?”, Przez podstawowe komponenty elektroniczne myślę, że oznacza to coś więcej:

enter image description here

Teraz jest to komputer na płycie tartej (cóż, kilka płyt tartych), zbudowany z podstawowych komponentów . Jego opis znajduje się tutaj . Składa się z kilkunastu typów układów scalonych serii 74LS00. (Nie sądzę, że chcemy wrócić do tranzystorów; oryginalny PDP-8 był wielkości małej lodówki ).

Jeśli chodzi o kalkulator naukowy, jeśli zbudowałeś komputer ogólnego przeznaczenia, taki jak pokazany powyżej, można go zaprogramować jako kalkulator naukowy. Stworzenie kalkulatora naukowego przy użyciu tylko logicznych układów scalonych (bez komputera) byłoby niezwykle trudne; wszyscy producenci takich kalkulatorów (Ti, HP itp.) używali specjalnych układów scalonych na dużą skalę . Oto domowy kalkulator, który wykorzystuje wczesny 4-bitowy kalkulator IC.

Zgadzam się, że jeśli ktoś chce uruchomić komputer tak szybko, jak to możliwe, to najlepiej użyć mikrokontrolera. Jeśli ktoś naprawdę chce zrozumieć, jak komputer działa wewnętrznie, to zbudowanie jednego z podstawowych układów scalonych jest właściwą ścieżką.

tcrosley
źródło
1
@ColeJohnson Jego notatki mówią, że nie ma na to żadnych schematów!
tcrosley
1
@ John Thx, naprawione.
tcrosley,
23

Jest to nie tylko możliwe, właściwie to zrobiłem: patrz https://www.vttoth.com/CMS/projects/47

Oto jak wyglądało okablowanie z tyłu jednej z płyt pilśniowych:

wprowadź opis zdjęcia tutaj

Oczywiście wszystko zależy od tego, które elementy kwalifikują się jako „podstawowe”. W moim przypadku podstawowymi komponentami były układy TTL serii 74 ..., z czego około stu. Aby zbudować komputer całkowicie z, powiedzmy, tranzystorów ... byłoby to zbyt przytłaczające.

Ponadto mój 4-bitowy komputer naprawdę nie jest wystarczająco mocny, aby używać go jako kalkulatora naukowego, głównie z powodu ograniczeń pamięci (256 4-bitowych nybbles). Jednak rozszerzenie przestrzeni adresowej nie jest strasznie trudne, być może przy użyciu mechanizmu stronicowania, a 4096 nybbles (adresy 12-bitowe) może już wystarczająco, 65536 nybbles (adresy 16-bitowe) na pewno.

Viktor Toth
źródło
Gratulacje. To całkiem spore osiągnięcie. Lubię zestaw instrukcji - przypomina mi 6800.
tcrosley
1
Jest facet, który pracuje nad budowaniem procesora przy użyciu wyłącznie tranzystorów. RAM, procesor, wszystko. MegaProcessor.com
Cole Johnson
4
Niektórzy ludzie są bardziej cierpliwi niż ja.
Viktor Toth
10

Tak, jest to możliwe, ale potrzebujesz nieco więcej niż tylko kilku makiet, aby wymyślić kalkulator naukowy, w zależności oczywiście od tego, co uważasz za podstawowy komponent: czy nazywasz tranzystor podstawowym komponentem, czy flip-flop , pamięć EEPROM lub po prostu coś, co można wylutować ze starej lodówki.

Jest tu kilka dobrych odpowiedzi, ale chciałbym tylko wskazać na jedną rzecz, której ludzie często nie biorą pod uwagę. Patrząc na historię urządzeń komputerowych, trudność w budowie komputera z kory drzewa i gwoździ nie dotyczy procesora ani ALU. Głównym problemem jest pamięć. Ponieważ potrzebujesz ogromnej ilości, aby cała koncepcja przechowywanego programu mogła działać. Możesz zrobić procesor z kilku klapek i bramek NAND; na przykład dla aplikacji energoelektronicznych ze specyficznymi ograniczeniami, kiedyś zaprojektowałem mikroprocesor, który wykorzystuje tylko 69 przerzutników (4 rejestry 16-bitowe, 4 flagi i 1 bit rejestru stanu oznaczający FETCH / EXECUTE). Jest zaimplementowany w krzemie, a ludzie piszą na nim działające oprogramowanie. To proste i pasuje do wielkości styku drenowego tranzystora mocy. Ale pamięć potrzebna do przechowywania dowolnego przydatnego programu jest znacznie, dużo większa.

Na początku pamięć była punktem wyjścia do projektowania. Można użyć przekaźników bistabilnych, tak jak na wczesnych centralach telefonicznych. Możesz użyć lamp próżniowych lub tranzystorów do wykonania przerzutników; a rejestry CPU zwykle były implementowane w ten sposób. Ale do przechowywania programów i danych używano taśm papierowych, magnetycznych, spinningowych lub bębnów spinowych. Nawet fale akustyczne na drucie stalowym, które są stale odbierane i retransmitowane przez elektronikę. Wszystko, co możesz o tym pomyśleć, może zawierać pewne bity przez rozsądny okres czasu przy rozsądnych kosztach. W orbitach Apollo i księżycowych komputerach lądownikowych wykorzystano wspomnienia o rdzeniu cewki zwinięte jako liny. Wszystkie te wymagają innego sprzętu interfejsu i mają ogromny wpływ na to, jaki procesor powinien mieć dostęp do tego rodzaju pamięci. Pamięć półprzewodników pojawiła się naprawdę dopiero w latach siedemdziesiątych, w końcu odrzucając tego rodzaju złożoność. Ale z drugiej strony nowoczesne dynamiczne pamięci RAM również nie są takie łatwe.

Jest jeszcze dodatkowa cudowność konieczności zaprojektowania urządzenia wejścia-wyjścia dla komputera. Kilka żarówek jest w porządku dla niektórych aplikacji, ale jeśli potrzebujesz wprowadzania / wysyłania tekstu lub czegoś jeszcze bardziej złożonego, znów napotykasz większe trudności. Czytniki kart, drukarki i terminale papierowe były w tamtych czasach wielkim biznesem. Terminal wideo w trybie tekstowym VT100 z 1978 roku ma znacznie większą pamięć i moc przetwarzania niż komputer kalkulator naukowy.

PkP
źródło
Chociaż z pewnością możliwe jest zaimplementowanie pamięci za pomocą przerzutników, myślę, że potrzebna jest koncesja, aby umożliwić układom pamięciowym pamięć (tak zwykle jest w przypadku komputerów domowych, które używają 74181 dla ALU). Możesz dostać SRAM 8Kx8 w pakiecie DIP za około 2 USD. To powinno wystarczyć na kalkulator. To samo dla EEPROM.
tcrosley,
1
@tcrosley Zgadzam się. Wskazuję tylko uwagę z historii. Jeśli zamierzasz dziś zbudować komputer homebrew, nie robisz tego, aby przestrzegać dowolnego zestawu zasad, zrobisz to dla zabawy i nauki. A zaprojektowanie mikroprocesora to więcej zabawy i lepsze doświadczenie edukacyjne niż nawijanie 16 tysięcy bitów pamięci rdzeniowej;)
PkP
@PkP Jest coś do powiedzenia dla kogoś, kto pamięta, jak utkać pamięć rdzeniową i jak to udokumentować. Nie tyle na poziomie, jak działa trochę lub dwa, ale praktyczna strona tego, jak zrobić 16 kbitów bez szaleństwa. Pracowałem nad projektami nasion beżu. Mogę sobie wyobrazić szaleństwo ... Zakładam, że kiedyś była to automatyzacja fabryki, ale widziałem bardzo niewiele o stronie produkcyjnej.
RBerteig
2
@RBerteig dzięki, zgadzam się. Pamiętam, że czytałem, że wspomnienia z liny statku kosmicznego Apollo zostały utkane przez bardzo utalentowane panie tkackie, które miały zadziwiającą cierpliwość, aby bardzo dokładnie sprawdzić każdą z nich lub zero na schemacie kodu, co oznacza, czy cewka bitowa jest utkana przez rdzeń lub ominęło go lub coś w tym rodzaju. Pamiętam, że czytałem z tego samego źródła, że ​​zajęło im sześć miesięcy, aby stworzyć nową pamięć ROM po każdej modyfikacji oprogramowania przez inżynierów MIT, którzy napisali oprogramowanie Apollo.
PkP
7

Jest to możliwe, ale złożoność i rozmiar zależy od tego, co nazywamy podstawowymi komponentami elektronicznymi. ALU i logika sekwencera jest nieco złożona, ale wykonalna. Pamięć jest prosta, ale podstawowy wzorzec należy powtórzyć bardzo wiele razy (pomyśl 1000 razy).

Oprócz sprzętu będziesz potrzebować również działającego na nim oprogramowania. W przybliżeniu, dla średnio złożonego procesora (klasyczne instrukcje 16-bitowe, 8-bitowy poziom danych) wysiłek programowy będzie porównywalny z wysiłkiem sprzętowym. (Aby uzyskać bardziej uproszczony procesor, będziesz potrzebować więcej wysiłku SW). A jak zamierzasz załadować SW do swojego komputera?

Polowanie na błędy (i rozwiązywanie) będzie ciekawym przedsięwzięciem. Radzę ci zacząć pisać w VHDL i uruchomić to na symulatorze, który będzie o wiele łatwiejszy do debugowania niż kilka układów i przewodów.

Dwóch moich studentów stworzyło 16-bitowy procesor z jakimś podstawowym oprogramowaniem (w tym portem zaplecza GCC) w ciągu ~ 1 roku, zaczynając od kodu VHDL i C do symulacji. ALU użyło 74181 układów, pamięć była statyczną pamięcią RAM, a one wykorzystały atMega do połączenia komputera z komputerem. Komputer był częściowo na bezlutowych podstawkach, a częściowo na płytkach drukowanych (8 rejestrów 16-bitowych). (Ci dwaj nie byli przeciętnymi studentami!)

Wouter van Ooijen
źródło
5

Tak to mozliwe. Ale potrzebujesz matematyki, aby wykonać matematykę. To jest przykładowy projekt. Wykorzystuje mikrokontroler AVR i wyświetlacz LCD 16 × 2.

Ok
źródło
+1 Mam kalkulator, który wykorzystuje procesor ARM. Obecnie mikrokontroler powinien być uważany za podstawowy element.
Spehro Pefhany
25
Nie potrzebujesz mikro, to po prostu ułatwia.
PlasmaHH
@PlasmaHH albo mikrokontroler, albo wiele płyt sterowniczych. Masz tylko podstawowe bramki 2-wejściowe? Baw się dobrze. OTOH ROM lub dwa + rejestr MUX + = już prosty mikrokontroler.
John Dvorak,
Jak myślisz, jak mikrokontrolery wykonują matematykę? Z ALU - wykonanymi z krzemu / tranzystorów / bramek elementarnych w zależności od skali, w jakiej patrzysz.
user3728501,
Mikrokontrolery i mikroprocesory są również wykonane z elementów elektronicznych, dzięki czemu można je tworzyć na
płycie pilśniowej