Komputer diy - prostszego nie widziałem

Loading thread data ...

W dniu 04.03.2023 o 11:31, Mirek pisze:

Jak się ogląda coś takiego, gdzie kilka diod LED zastępuje monitor, to się wpada na pomysł zrobienia skanera/OCRa/książek dla niewidomych i ekranu mechanicznego z wypustkami w języku Brail'a, żeby mogli poznać treść wielu wydań i mieć lepiej w życiu.

Po wymyśleniu już całej automatyki, korekcji błędów i jak to ma działać, człowiek sobie uświadamia ze są audiobuki i zaawansowany projekt legnie w gruzach :D

Taa, tak działa brzytwa ockhama :D

Reply to
LordBluzg®🇵🇱

Jeśli dobrze zrozumiałem opis - to raczej magnetofon ze skakaniem między kawałkami taśmy.

Reply to
heby

No tak - bardzo trafne porównanie. Tam nie ma procesora - jest tylko zegar, pamięć i coś na kształt licznika rozkazów sterowanego zwrotnie z tejże pamięci. Brakuje przede wszystkim skoku warunkowego... ale żeby sprawdzić warunek trzeba jakiś rejestr, instrukcję ładującą ten rejestr... Raczej bitów nie starczy i w ten sposób się nie da. Trzeba by robić normalny dekoder rozkazów, rejestry itp.

Reply to
Mirek

Takie konstrukcje są doskonale znane i uzywane od lat 70. Przykładowo Antic (Atari 8-bit) i Cooper (Amiga). Oba nie są turing-complete, działają jak proste "kontrolery DMA z listą szeregowych rozkazów".

Może więc coś bardziej przypominającego komputer:

formatting link

Reply to
heby

Kiedyś, bardzo dawno temu, coś podobnego zrobiłem. Sterownik składał się z eproma, rejestru i "zegara". Linie danych przez rejestr "wracały" na część linii adresowych eproma, inne linie adresowe były sterowane z wejść. Potem znalazłem że to się nawet nazywa, ale już nie pamiętam. Zapewne zresztą jest na to kilka różnych określeń. Trochę zabawy było z rysowaniem grafu przejść. W zależności od zawartości eproma realizował różne funkcje.

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz

Troche tak ale i troche nie.

Jak definiujemy procesor? Filozoficznie to jest uklad ktory moze wykonywac program skladajacy sie z instrukcji. Ile tych instrukcji? Jedna? Dwie? 300? Gdzie jest granica gdzie procesor sie zaczyna? Jakie te instrukcje? Starczy dodawanie i skok? Czy jednak musi byc rowniez transfer? A moze transfer bedzie domniemany? Ile opcji per instrukcja? Dodawanie miedzy rejestrami? Ile ich? A moze tylko miedzy pamiecia i rejestrem? A moze rejestru nie trzeba is ie doda miedzy pamiecia a pamiecia?

Problem z definicja procesora jest taki ze mowi o tym ze przetwaza dane. nie mowi ile, jakich, i jak. Procesor moze byc tylko analogowy i dodawac liczby, zgodnie z jakims tam programem. Moze byc elektryczny, pneumatyczny, mechaniczny czy co tam sobie ludzie wymysla.

Ale jesli popatrzy sie na mikroprocesory tradycyjnie. Tak jak zazwyczaj o nich myslimy (6502, 68k, x86, risc) to najwieksza moim zdaniem ciekawostka jest taka ze tak naprawde cala magie procesora tworzy dekoder rozkazow. Ten niepozorny rom w procesorze ktory jest zazwyczaj omawiany w 2 zdaniach: Dekoder rozkazow dekoduje polecenia z postaci binarnej (i tu nastepuje zazwyczaj bardzo nieprecuzyjne wyjasnienie na co nastepuje dekoding. Umozliwia procesorowi wykonywanie tych rozkazow.

Czasem (relatywnie rzadko) dodane jest ze tenze dekoder to pamiec rom.

I tyle.

A tak naprawde to dekoder mimo ze tak bardzo niezywy ze wrecz statyczny pozwala na reszcie procesora ozyc i dzialac.

Uwazam ze ogrom ludzi tego nie rozumie (wiekszosc z ktorymi rozmawialem mimo bycia obeznanymi z IT i elektronika nie ma pojecia jak dekoder rozkazow dziala i jak to mozliwe ze robi to co robi) i niestety przez to nie rozumieja co to jest procesor i jak rozpoznac ze cos co normalnie sie procesorem nie nazywa tak naprawde nim jest.

Reply to
ptoki (ptoki

Jedna wystarczy:

formatting link
Niezbyt praktyczny, ale Turing-zupełny jak najbardziej.

Pozdrawiam, Piotr

Reply to
Piotr Wyderski

Tak sobie myśle czy obecnie nie było by wydajniej aby CPU mógł bezpośrednio wykonywać działania na pamięci a nie na rejestrach. Ja wiem- odwołania do działań byby dłuższe ale zaoszczędzilibysmy duzo czasu na kopiowaniu RAMu do rejestrów. Oczywiście część rejestrów musiała by zostać - jak np program counter.

c.

Reply to
Cezar

Mnie tylko chodziło o to, że "nie ma procesora" w sensie nie ma oddzielnego bloku, który nazywamy procesorem. Można się uprzeć i stwierdzić, że połączenie wyjść tej pamięci z licznikiem tworzy z tego procesor.

Reply to
Mirek

W dniu 05.03.2023 o 04:48, ptoki (ptoki) pisze:

Dodawanie nie. Odejmowanie tak.

Pełno jest przykładów procesorów z jedną instrukcją.

MJ

Reply to
Michał Jankowski

niedziela, 5 marca 2023 o 04:48:02 UTC+1 ptoki (ptoki) napisał(a):

Zaczynało się od dodawania między komórkami pamięci. Rejestry przyszły z 2 powodów

- krótsza instrukcja - zajmująca mniej DROOOGIEJ pamięci, jeśli jednym ze składników i sumą był "akumulator"

- procesory stawały się szybsze szybciej niż pamięci - więc najpierw rejestry, potem cache (mój pierwszy PC miał 4MB RAM 60ns, w obecnym mam 4MB cache w CPU 3,2GHz - czyli 0,31ns)

Mnie uczyli takiej definicji (jednej z wielu) że są procesory danych i procesory instrukcji. I że są "komputery sterowane przepływem danych".

Nie zawsze ROM. Np. dyskietki 8" wymyślono, by mieć nośnik do upgrade'u mikrokodu w IBM 360.

No ale co w tym trudnego? Procesor ma wiele funkcji - i dekoder rozkazów jedne włącza a inne wyłącza.

Reply to
Dawid Rutkowski

sobota, 4 marca 2023 o 22:04:05 UTC+1 Dariusz Dorochowicz napisał(a):

Typowy automat. Czyli procesor i pamięć (w tym pamięć programu) w jednym. Jeszcze pytanie, czy synchroniczny czy asynchroniczny. Mnie do dziś zadziwia, że odczyt z pamięci jest asynchroniczny...

A taki sterownik na PROMie zrobił zrobił Steve Wozniak do odczytu dyskietek - procesor 6502 był za wolny, by samplować każdą zmianę pola, więc samplował całe bajty odczytane przez automat - na tyle szybki był.

Reply to
Dawid Rutkowski

W dniu 2023-03-05 o 17:31, Dawid Rutkowski pisze:

Procesorem to tego bym nie nazwał.

Skoro miał zegar i zmiany stanu były możliwe tylko w czasie zbocza tego zegara no to synchroniczny.

No bo to może całkiem szybko pracować w porównaniu do starych procesorów. Tylko to mało uniwersalne rozwiązanie.

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz

niedziela, 5 marca 2023 o 17:55:06 UTC+1 Dariusz Dorochowicz napisał(a):

Jak przetwarza dane to procesor. Nawet jeśli jest to "komputer sterowany przepływem danych". Zapewne nie jest to CPU, bo jednak "wszystko w jednym".

No ten tak, łatwiej się projektuje ale więcej krzemu trzeba. Coś za coś.

Nikt nie mówi, że jest to "komputer", a tym bardziej "komputer uniwersalny".

Tak też określił PC-ty jeden wykładowca - procesor od kalkulatora, OS marny i to ma udawać komputer uniwersalny. Jedyne dobre to magistrala PCI. To było tak 1999-2000 - hmm, dziwne, że o Linuxie nie wspomniał, a był to akurat wykład z "systemów operacyjnych" - choć właściwe jedyne co zapamiętałem to SOM-3 i CROOK - i 4096 "sekcji" w CROOKu. Trzeba chyba zajrzeć do notatek. Z czego mógł być egzamin???

Ale ale, czemu znów tak o wiele szybciej? Procesory zwykle były wolne bo pamięci i tak nie nadążały. Ale były tak szybkie jak pamięć pozwalała - pierwsza sprawa to oczywiście odczyt rozkazów, bo to jest potrzebne na każdy rozkaz (stąd idea RISC miała sens dopiero przy cache instrukcji), drugorzędna to dane. A tu przecież centralnym elementem jest taka sama pamięć.

Reply to
Dawid Rutkowski

Tak. Ale jak zauwazyles, dla wielu to bylby zbyt akademicki przyklad.

Reply to
ptoki (ptoki

Raczej nie. Z paru powodow.

  1. Szybki ram jest wolniejszy od taktowania cpu. W rezultacie cpu by patrzylo w sufit wiekszosc czasu. Aktualnie chyba nawet transfery cache-rejestr zabieraja czasem wiecej niz cykl lub dwa (nie jestem na bierzaco).
  2. Zazwyczaj cpu jednak miącha te dane pare razy zanim wypluje wiec lepiej jednak w rejestrach trzymac dane.
  3. Dzieki temu ze rejestry moga byc podlaczone do paru innych komponentow naraz mozna co nieco zoptymalizowac. taka optymalizacja nie byla by mozliwa gdyby bardziej ogolnie do tematu podejsc.
  4. Niby risc mial byc szybszy ale w praktyce nie byl. Mial inna zalete, uproszczaona budowe wiec i optymalizacje byly latwiejsze.

To video dobrze wyjasnia idee fundamentow:

formatting link
polowy sie zacyznaja detale (30 minuta).

Reply to
ptoki (ptoki

I to wlasnie jest sedno. Kiedys probowalem zajawic pewnym reditorom ze ta stara konsolka atari (oidp byl to pong) niby nie miala procesora ale ta elektronika wewnatrz dzialala tak jak procesor. Tylko IODP nie bylo dekodera rozkazow ale zamiast tego byly odpowiednie polaczenia. A ze calosc byla prosta to tyle wystarczalo. Zamiast rom- byla siatka polaczen i jakies negacje lub inne operacje logiczne i to wystarczalo.

Niestety tamte ludki momo niby jakiejs tam wiedzy z IT nie rozumieli zupelnie o co chodzi.

Innymi slowy, to co uwazasz ze nie jest procesorem tak naprawde nim jest. Bo definicja jest na tyle szeroka ze jakby sie uprzec to mozna zrobic bardzo prosty procesor w ktorym nie bedzie wydzielonych rejestrow, alu, pamieci - tak jak w tej atarynkowej konsolce.

Reply to
ptoki (ptoki

niedziela, 5 marca 2023 o 10:26:05 UTC-6 Dawid Rutkowski napisał(a):

Nie bierz tego do siebie ale to wlasnie sedno sprawy o ktorej mowie. Mowiono ludziom o pewnej klasie procesorow i to na tyle nieprecyzyjnie ze wiekszosc tego nie rozumiala a ci co sie starali wpadali w te pulapke uproszczen czy konkretnych rozwiazan.

Nawiasem uUwazam ze wielu z tych co mieli te wiedze przekazac sami niewiele rozumieli wiec tylko bezmyslnie klapali paszczami to co w innej ksiazce bylo napisane albo nawet jak rozumieli to wlasnie na zasadzie ze mlotek musi miec trzonek z drewna i musi miec trzonek i obuch. A jak nie ma trzonka to mlotkiem w zadnym wypadku nie jest (i zaczeli by godzinna tyrade dlaczego jednak ten mlotek blacharski to jednak trzonek ma - chodzi mi o slide hammer - nie wiem jak sie to u naszych blacharzy nazywa).

Definicja procesora na wikipedii jest dosyc prosta i pod nia podpada i pong i jakies analogowe proste uklady ktore moga byc programowane. To co w nim jest i czy dodaje, mnozy czy robi za drabinke stanow nie jest juz bardzo istotne. To byl trzon mojego argumentu.

Tak, oczywiscie.

Trudne jest to ze wiekszosc ludzi nie rozumie ze ta niezywa czesc procesora (oczywiscie tych popularnych) ozywia go. Zamiast niego mozna miec inny uklad ktory dba o to aby te poszczegolne uklady spinaly sie w zestawy tak aby wykonac konkretna operacje.

Moja uwaga tyczy sie pojmowania a nie detali technicznych. Niby niewielka mądrość z rozumienia dekodera wynika ale moim zdaniem bardzo to pomaga zrozumiec reszte komputera. I ogolnie inne aspekty IT.

I niestety ten prosty schemat myslowy zbyt czesto jest nieobecny u wielu ludzi w IT (i tu wyjde na starego ramola) szczegolnie mlodych. Mam teraz nieco styku z mlodymi i skala tego jakich rzeczy nie rozumieja (nie dlatego ze glupi, dlatego ze nikt od nich nie wymagal zrozumienia podstaw) mnie przeraza. Ale to juz inny temat.

Reply to
ptoki (ptoki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.