Chciałbym zbudować najprostszy możliwy komputer. Nie dbam o szybkość ani pamięć masową, w rzeczywistości posiadanie niskiej prędkości i niskiej pamięci jest ogromną zaletą, ponieważ chcę zbudować ją z tranzystorów (idealnie przekaźników!) I chcę diodę LED dla każdego stanu. Zostanie zaprogramowany przez Raspberry Pi, który będzie obsługiwał kamerę, dzięki czemu zobaczysz każdy cykl zegara (tak, będzie on działał z częstotliwością Hz, a nie GHz). Będzie to otwarty projekt z zamiarem, aby szkoły mogły kupować części, rozumieć i ulepszać projekt. Tak więc całkowity budżet musi wynosić znacznie poniżej 400 GBP, najlepiej około 100 GBP.
Badałem to przez wiele lat i mam dobre pomysły na procesor (minimalne rejestry, mikrokod w przełącznikach DIP i bitowe operacje logiki / arytmetyki szeregowej w celu zmniejszenia liczby tranzystorów). Nie mogę zrozumieć, jak uzyskać pamięć, chciałbym 1024 do 8096 bitów.
Najlepsze, co mogę wymyślić, to dwa 6-bitowe dekodery jeden z n, dające dostęp do siatki kondensatorów 64 x 64. Albo mają w sobie ładunek, albo nie, a czytanie wzmocniłoby ten stan. Na kondensatorach nie byłoby diod LED, ponieważ odświeżanie tej „pamięci DRAM” odbywałoby się w kolejności lub minutach (szkoda, ponieważ byłaby to jedyna część, która nie pokazuje stanu).
Inne pomysły obejmują jakąś formę napędu taśmowego (kompaktowy mechanizm kasetowy: świetne miejsce do przechowywania, zbyt skomplikowane, bez przeszukiwania), pamięć bębna (taśma wokół fasoli może: zbyt trudno uruchomić mechanikę), pamięć mechaniczna (koło rowerowe i łożyska kulkowe: zbyt wiele błędów bitowych), pamięć rdzenia (duże twarde rdzenie ferrytowe: nadal bardzo trudne do uzyskania właściwej wymaganej skali), taśma / karta (czy nadal możemy kupić czytniki taśm), obracający się dysk z dziurkami w porządku binarnym i niektóre magnetyczne pamięć do przechowywania (zbyt złożona, aby ją zbudować).
Ostatecznie celem jest opublikowanie projektu, który można zbudować w roku szkolnym, w którym wszystkie części procesora i pamięci są „widoczne”, dzięki czemu można zobaczyć pobieranie instrukcji, dekodowanie do mikrokodu oraz dekodowanie adresu / rejestrowanie dostępu / logiki wszystkie dzieje się w ciągu kilku minut.
Jeśli ktoś ma pomysły na naprawdę tanią pamięć (<< 100 £), gdzie jest jasne, jak dokładnie działa, daj mi znać.
Tony
Aktualny stan PS znajduje się na stronie http://www.blinkingcomputer.org/
źródło
Odpowiedzi:
Jest wielu ludzi, którzy zbudowali komputery z dyskretnych tranzystorów, układów scalonych, przekaźników, a nawet lamp próżniowych. Obejmują one od maszyn 4-bitowych aż do 32-bitowych. 4-gorzkie oczywiście będą najłatwiejsze do zbudowania i zrobienia czegokolwiek. Pierwszym mikroprocesorem był 4-bitowy 4004 Intela .
Zacznę od wyszukania w Google „ domowych komputerów 4-bitowych ” (bez cudzysłowów).
Oto płytka z tranzystorowego 4-bitowego komputera:
Jeśli chodzi o pamięć, niektóre z tych projektów, które inaczej wykorzystują dyskretne tranzystory, „oszukują” i wykorzystują układy SRAM. Są niesamowicie tanie w przypadku umiarkowanych ilości pamięci, 32 KB to 3,28 USD i nie wymaga zegarów ani odświeżania.
Nawet jeśli reszta komputera używa przekaźników, użycie ich do pamięci będzie wyjątkowo drogie.
Jeśli możesz sobie poradzić z bitami 1K, możesz zbudować taki z tranzystorowymi przerzutnikami; 2048 2N3904 kosztuje 3 centy za sztukę (łącznie 60 USD plus inne składniki, które będą jeszcze tańsze - opory za 1/2 centa itp.). Możesz dostać płytki drukowane za 10 USD za sztukę, a następnie wynająć dziecko, aby je wypchać.
Przekaźnik komputerów pochodzą z powrotem całą drogę do końca 1930 roku, a jednym z pierwszych był Harvard Mark I . Stąd pochodzi nazwa architektury Harvarda (osobna przestrzeń programu i dane, w porównaniu do architektury von Neumanna łączącej te dwa elementy).
Najbardziej znanym komputerem przekaźnikowym do domowej produkcji jest komputer zbudowany przez Harry'ego Portera.
Sprawdź filmy z uruchomionego komputera. Przypomina mi starą elektromechaniczną centralę telefoniczną.
Oto część innego komputera przekaźnikowego domowej roboty o nazwie Zusie :
Dużo migających świateł.
I na koniec, oto link do wideo 4-bitowego sumatora, złożonego z 24 przekaźników. Takie sumatory są sercem ALU (arytmetycznej jednostki logicznej) w komputerze.
źródło
Jeśli chcesz prostej pamięci, nie szukaj dalej niż flip-flop . Dzięki dwóm tranzystorom i czterem opornikom możesz mieć całą pamięć. Możesz także zrobić flip-flop z dwoma sprzężonymi ze sobą bramkami NOR lub po prostu kupić układ scalony z kilkoma przerzutnikami.
W rzeczywistości bardzo szybka pamięć podręczna procesora to w zasadzie kilka przerzutników zintegrowanych z procesorem.
źródło
Zgadzam się, że fajnie byłoby mieć kompletny system komputerowy z diodą LED dla każdego stanu, widoczny dla ludzkiego oka.
TIM 8 komputer przekaźnik wykorzystuje 8 kondensatorów, 2 diody i jeden przekaźnik SPDT na bajt w jego 12 bajtów pamięci RAM głównej pamięci (pamięć danych). (TIM 8 ma 16 bajtów pamięci zmiennej, jeśli dołączasz rejestry).
Komputer przekaźnikowy TIM 8 używa taśmy dziurkowanej do pamięci programu.
Czy można zastąpić te diody diodami LED, więc pojawia się krótki puls pokazujący, że dane wchodzą lub wychodzą z bajtu pamięci RAM? Być może jeśli system wystarczająco szybko odświeża pamięć DRAM, skanując każdy bajt pamięci RAM, to każdy stan wydaje się widoczny na tych diodach LED (chociaż technicznie tylko jeden bajt diod LED byłby aktywowany w dowolnym momencie). (Byłyby to dość wysokoprądowe diody LED, jeśli chcemy ŁADOWAĆ i PRZECHOWYWAĆ dane z tych kondensatorów do rejestrów przekaźnikowych).
Czy możliwe jest umieszczenie rezystora i diody LED na każdym kondensatorze pamięci bitów, naprawdę jednocześnie pokazując każdy bit stanu? (Byłyby to dość niskoprądowe diody LED i fizycznie duże kondensatory, jeśli chcemy, aby kondensator przechowywał dane wystarczająco długo, aby uzyskać rozsądną częstotliwość odświeżania. Niektóre diody LED można łatwo zobaczyć przy zaledwie 1 mA prądu. Z 1 sekundowym odświeżaniem cykl i kondensatory (szacowanie) początkowo naładowane do 12 V, mimo że (szacowanie) ładunek 7 V na kondensatorze wystarcza do naładowania sprzętu znajdującego się za nim, to kondensator potrzebuje wartości znamionowej C ~ = i * t / V = 1 mA * 1 s / (12 V - 7 V) = 200 uF.).
Będzie to oczywiście znacznie większe i pochłonie więcej ludzkiej pracy niż prawie jakakolwiek pamięć główna oparta na układach scalonych.
źródło
Dlaczego nie użyjesz zwykłego 8-bitowego procesora (np. 6502) i bardzo małej ilości pamięci (rejestry procesora, IC RAM i bardzo niewielkiej ilości pamięci zewnętrznej (np .: FD, HD lub dysk flash itp.) .), a następnie po prostu wyjaśnij za pomocą slajdów:
Jeśli chcesz, aby urządzenie było tak proste i niedrogie, jak to możliwe, użyj systemu rozwoju mikrokontrolera, ponieważ system podstawowy, a nawet Arduino jest proste i niedrogie. Żaden ze studentów nie zbuduje prostego przekaźnika lub lampowego komputera próżniowego - nikt też nie powinien tego robić. Powinny zacząć od dobrej książki i Arduino dla podstawowego zrozumienia programowania. Następnie, jeśli chcą zająć się czytaniem / kontrolowaniem urządzeń zewnętrznych, mogą zagłębić się w konkretne programowanie lub inżynierię.
Oto dobry projekt do rozważenia na pomysły:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS
źródło
Zgadzam się, że fajnie byłoby mieć kompletny system komputerowy z diodą LED dla każdego stanu, widoczny dla ludzkiego oka, zamiast ukryty w tajemniczej czarnej skrzynce.
Możesz rozważyć użycie mniej lub bardziej standardowej magistrali pamięci o równoległych bitach - być może coś w rodzaju STEbus (magistrala IEEE-1000) .
Możesz rozważyć użycie zestawu układów scalonych, takich jak 74HC273 lub 74LS373 lub 74HC564, do przechowywania danych, dzięki czemu bieżący stan danych w układzie będzie zawsze widoczny na diodach LED podłączonych do pinów równoległego wyjścia. Następnie użyj ósemkowych buforów 3-stanowych (takich jak 74HC241 lub 74LS245) lub multiplekserów, również podłączonych do tych równoległych pinów wyjściowych, aby wprowadzić dane do magistrali. Kończysz z kilkoma układami dekodera typu N i 2 układami na 8 bitów pamięci. „To pozwala… zobaczyć, jakie dane są faktycznie przechowywane w każdym bajcie pamięci RAM”. - Pong Guy's SAP-1 Prosty jak to możliwe komputer z dyskretną pamięcią RAM . To samo ustawienie stosuje się do rejestrów w czterobitowym procesorze Jaromira lub rejestrów w 8-bitowym procesorze spaghetti Kyle'a .
Aktualne ceny (2016) od Mouser.com wynoszą około 0,11 USD / bit na 10 sztuk dla takiego układu (jeden oktalny zatrzask do przechowywania plus jeden oktalny 3-stanowy bufor na 8 bitów) oraz 0,05 USD / bit dla nowych diod LED w ilości 500. Dla 2 ^ 9 bajtów = 512 bajtów = 2 ^ 12 bitów = 4096 bitów, czyli (bardzo z grubsza)
Być może uda Ci się zbudować (bardzo z grubsza) 64 bajty pamięci danych (tyle samo pamięci co Atmel ATTINY13 lub Microchip PIC16F570) za około 90 USD (co może zmieścić się w twoim budżecie 150 ~ = 100 £).
Możesz zrozumieć, dlaczego kuszące jest zastąpienie wszystkich tych układów pamięci i bufora oraz większości układów dekodera gotowym równoległym układem SRAM 32Kx8, który zapewnia znacznie więcej miejsca za mniej niż 10 USD. (Alliance AS6C1008-55PCN, Cypress CY7C199CN-15PXC itp.)
Może dlatego większość procesorów domowych, od małego 4-bitowego procesora Nibbler po imponujący komputer przekaźnikowy RC-3 http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , są podłączone do układu SRAM czarnej skrzynki dla pamięci głównej.
Przy czymś takim jak standardowa szyna pamięci może być możliwe podłączenie do procesora kilku różnych kart pamięci jednocześnie:
źródło
Oto kolejna propozycja podobnego projektu, który może być opłacalny - zbudowanie maszyny Turinga. Chodzi o najprostszą możliwą maszynę obliczeniową
źródło