RTV forum PL | NewsGroups PL

Komputer diy - prostszego nie widziałem

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Komputer diy - prostszego nie widziałem

Goto page Previous  1, 2, 3, 4

Janusz
Guest

Tue Mar 07, 2023 2:03 pm   



W dniu 2023-03-06 o 22:49, ptoki (ptoki) pisze:
Quote:
poniedziałek, 6 marca 2023 o 06:41:32 UTC-6 Cezar napisał(a):
On 06/03/2023 02:21, ptoki (ptoki) wrote:
niedziela, 5 marca 2023 o 03:53:13 UTC-6 Cezar napisał(a):
On 05/03/2023 03:48, ptoki (ptoki) wrote:

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?

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.



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).
OK ale wezmy takiego 6502 czy nawet AVR, który ma dostęp do pamięci w
czasie rzeczywistym
Takie LDX zajmuje 2-4 cykle, CPX następne 2-4, INX dwa cykle. Jakby CPX
i wykonywał się bezpośrednio na ramie to można by zaoszczędzić kilka cykli.


Obejrz filmik jaki tu wrzucilem. Tam jest wiecej ciekawostek, np to ze 6502 wciaga nowy rozkaz jak stary jeszcze sie nie skonczyl. To nieco komplikuje takie analizy.

Ale AVR też tak robi, bo Flash jest wolniejszy od Ram i też zrobi fech w

czasie wykonywania poprzedniej instrukcji.

--
Janusz

J.F
Guest

Tue Mar 07, 2023 4:32 pm   



On Tue, 7 Mar 2023 11:00:17 +0100, Michał Jankowski wrote:
Quote:
W dniu 07.03.2023 o 09:42, J.F pisze:
Gdzies tam w szkole sie bawilismy programowanie hipotetycznej maszyny
o niewielkiej ilosci rozkazów. np miala rozkaz zwiekszenia rejestru o
1, zmniejszenia, sprawdzenia czy jest 0 - ze skokiem warunkowym ...

Wystarczy jeden rozkaz - odpada dekodowanie rozkazu.
https://en.wikipedia.org/wiki/One-instruction_set_computer

Taa ... cytujac Lema "skomplikowany komputer wymaga prostszego
programu, a prostszy komputer wymaga bardziej rozbudowanego programu.
Nieskonczony program moze działac bez komputera" :-)

J.

ptoki (ptoki)
Guest

Tue Mar 07, 2023 5:41 pm   



wtorek, 7 marca 2023 o 02:42:45 UTC-6 J.F napisał(a):
Quote:
On Mon, 6 Mar 2023 13:43:28 -0800 (PST), ptoki (ptoki) wrote:
poniedziałek, 6 marca 2023 o 02:09:01 UTC-6 heby napisał(a):
On 06/03/2023 03:26, ptoki (ptoki) wrote:
Innymi slowy, to co uwazasz ze nie jest procesorem tak naprawde nim jest.
Tak naprawdę, od bardzo dawna używamy stosownego kryterium:

https://pl.wikipedia.org/wiki/Kompletno%C5%9B%C4%87_Turinga

To, że coś potafi przemieszczać kwadraty na ekranie i liczyć cyferki,
nie czyni z tego jeszcze *komputera*.

Procesorem, o procesorach my tutaj mowimy. :)

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.
Jest wątpliwe, czy ten "procesor" jest turing-complete. Tym bradziej, że

Procesory z zalozenia nie musza byc turing complete. Nie wiem czy 3 rejestry licza sie jako tasma ale ogolnie to wypracowanie nie na temat Pan oddał Smile
W sensie Turinga to raczej nie - tasma ma byc długa.
Może nawet nieskonczenie długa, bo choc uzyty będzie skonczony
kawałek, to nie zawsze wiadomo z góry jaki.

Ale ale ... widzialem kiedy klawiature do peceta, polskiej produkcji,
zrobioną na Z80. Bez pamieci.
Widac rejestrow starczyło.


Tak. Pamiec do jakiej sie przyzwyczailismy nie koniecznie musi byc elegancko na szynie czy nawet explicite w postaci rejestru.
Jak "cos" robi za pamiec to starczy aby procesowac dane.

Quote:
W drugą stronę były transputery, gdzie rejestrow w zasadzie nie było,
była pamiec robocza, pozniej chyba robiła za cache ..
zestaw danych i polecań na których pracuje jest nieelastyczny. A tym, co
odróznia CPU od garści TTLi, jest mozliwośc realizacji *dowolnego*
algorytmu.

Nie na temat. Ale w sumie udowadnia moja teze inicjalna. Wielu ludzi nie rozumie tych pojec. CBDU.
Ale z garsci TTL mozna zrobic CPU.


Moim zdaniem, powolujac sie na tego bidnego ponga, nawet nie koniecznie trzeba tego duzo.

Quote:
Gdzies tam w szkole sie bawilismy programowanie hipotetycznej maszyny
o niewielkiej ilosci rozkazów. np miala rozkaz zwiekszenia rejestru o
1, zmniejszenia, sprawdzenia czy jest 0 - ze skokiem warunkowym ...


Ale to juz wypas byl Smile

Powoluje sie na tego ponga bo on jest na pograniczu. Niby dziala jak cpu a jednak sporo komponentow
tam albo nie ma albo jest realizowane w sposob bardzo odmienny od nawet uwczesnego wyborazenia
jak one sa realizowane.
Dla mnie to jest procesor choc bardzo niestandardowy.
Dla wielu to nie jest procesor bo nie ma konkretnych elementow znanych z procesora.

Gdzie bym namalowal kreske pomiedzy procesorem a nie procesorem? Trudne pytanie. Trzeba by tak
naprawde przejrzec kazdy uklad i stwierdzic czy wykazuje znamiona przetwarzania danych i bycia programowalnym.

ptoki (ptoki)
Guest

Tue Mar 07, 2023 5:55 pm   



wtorek, 7 marca 2023 o 06:05:17 UTC-6 Janusz napisał(a):
Quote:
W dniu 2023-03-06 o 22:49, ptoki (ptoki) pisze:
poniedziałek, 6 marca 2023 o 06:41:32 UTC-6 Cezar napisał(a):
On 06/03/2023 02:21, ptoki (ptoki) wrote:
niedziela, 5 marca 2023 o 03:53:13 UTC-6 Cezar napisał(a):
On 05/03/2023 03:48, ptoki (ptoki) wrote:

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?

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.



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).
OK ale wezmy takiego 6502 czy nawet AVR, który ma dostęp do pamięci w
czasie rzeczywistym
Takie LDX zajmuje 2-4 cykle, CPX następne 2-4, INX dwa cykle. Jakby CPX
i wykonywał się bezpośrednio na ramie to można by zaoszczędzić kilka cykli.


Obejrz filmik jaki tu wrzucilem. Tam jest wiecej ciekawostek, np to ze 6502 wciaga nowy rozkaz jak stary jeszcze sie nie skonczyl. To nieco komplikuje takie analizy.

Ale AVR też tak robi, bo Flash jest wolniejszy od Ram i też zrobi fech w
czasie wykonywania poprzedniej instrukcji.


Nie rozumiem przeslania.

No robi, ale jednak ma rejestry i nie slyszalem o tym aby operacje ram-ram byly optymalniejsze. Ani w 6502 ani avr czy innych riscach.
Jakbym poszperal to moze gdzies by sie dalo znalezc takie przyklady ale generalnie tak nie jest.
Moja uwaga tyczy sie tego ze porownujac wykonanie rozkazu na zasadzie osadzenia go w grupie NOP-ow, wykonaniu i sprawdzeniu PC po skonczeniu nie da
wiarygodnej ilosci cykli bo w zalezosci od tego czy wykonanie umozliwia wciagniecie nowego rozkazu czy nie to ilosc cykli sie moze zmieniac.
Nie wiem czy tak jest w 6502 ale juz nowsze cpu maja przewidywanie skokow wlasnie po to aby tego typu problem rozwiazac.

Glownym powodem dla ktorego sie tak nie robi jest fakt ze pamiec na szynie nie tylko sama w sobie jest wolna ale wiele systemow ma inne uklady wpiete i kontrolujace te szyne.
Nie wiem czy to komplikuje ogolnie projekt czy sprawia ze wykonanie staje sie nieprzewidywalne ale w praktyce takich konstrukcji gdzie wykonanie ram-ram ma sens.

Pamietam jak na amidze optymalizowano kopiowanie danych w ramie.
Tam probowano zaprzac blitter, dma i cpu naraz. Ktos gdzies rozwazal czy dodanie coppera do kompletu przyspieszy czy spowolni taki transfer...
Nie pamietam co tam wyszlo.

Ale wiem ze w x86 zerowanie rejestru xor-em bylo szybsze niz zaladowanie zera z pamieci.
Moze jakby pamiec typu Video podpiac z obu stron do cpu to wtedy czytanie jednym kanalem i zapic przetworzonych danych normalna szyna bylby szybki dla pewnych zastosowan?
Nie wiem. Moze. Ale w praktyce taniej jest poczekac i kupic szybsza maszyne albo kupic dwie i robic rownolegle...

Tyle na temat dywagacji akademickich.

Goto page Previous  1, 2, 3, 4

elektroda NewsGroups Forum Index - Elektronika Polska - Komputer diy - prostszego nie widziałem

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map