Welcome, Guest. Please login or register.


Author Topic: Az örök vita: EP vs C64 (Read 44950 times)

Offline DrPrery

  • EP user
  • *
  • Posts: 264
  • Country: hu
Re: Az örök vita: EP vs C64
« Reply #195 on: 2014.September.07. 23:00:41 »
Itt valami Spectrumos cáfolja vehemensen a C64-esek azon állítását, hogy a 6502 gyorsabb mint a Z80...

http://www.alfonsomartone.itb.it/aunlzr.html

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #196 on: 2014.September.07. 23:23:39 »
Quote from: DrPrery
Itt valami Spectrumos cáfolja vehemensen a C64-esek azon állítását, hogy a 6502 gyorsabb mint a Z80...

http://www.alfonsomartone.itb.it/aunlzr.html

Nincs ezzel semmi baj. Az mar kicsit tenyleg tulzas, hogy egy kicsivel 1MHz alatti orajellel megaldott 6502 gyorsabb lenne mint egy pl 3.5MHz-en (vagy EP eseten 4) hajtott Z80, ehhez mar tenylet 65xx/C64/stb elvakultnak kell lenni :) Osszehasonlitani nyilvan azonos orajelen mert teljesitmeny eseten lehetne.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #197 on: 2014.September.07. 23:43:24 »
Quote from: Attus
Például programozástechnikailag a 16 bites alaparitmetika Z80-nál egy utasítással megoldható.
add hl,de
add sp, hl
sbc hl,bc
Ez hogy oldható meg 65xx -nél egy utasítással?

Az sehogy. De nem is cel. Kezdem elolrol, pedig mar sokszor leirtam: a RISC elv bar csak igen korlatozottan alkalamazhato valamire, mint a 65xx, de kb azt mondja, hogy legyen minnel kevesebb de egyszeru/elemi utasitas, es inkabb oldjuk meg azok kombinalasaval a dolgokat, ne komplex utasitasok bevezetesevel (es lenne a CISC elv). Lathatoan te arra hajtasz, hogy minden megoldhato legyen egyetlen utasitassal, es az a kiraly megoldas, holott a modern CPU-k is RISC elvuek es nem CISC-ek (legalabbis elemi szinten, x86 az szep hibrid kutyulmany).

Masreszt, megint tul Z80 oldalrol nezed. Z80 kod eseten sokszor azert van szukseg a 16 bites osszeadasokra, hogy pl memoriacimet szamolj ki, es sok esetben pl pont azert, mert Z80-on hianyzik par cimzesmod ami fontos lenne. Pl amit mar emlitettem elozo hozzaszolasaimban, sok esetben 65xx eseten egyszeruen nem is kell 16 bites osszeadas, mert helyette maskepp meg tudod oldani, hatekonyabban, mert Z80-on pl cimszamitasra hasznalnad amit 65xx megcsinal egy orajelciklus plusz alatt is aka a cimzesmod reszekent, mig z80-on akar 11 orajelciklus is - ha jol remlik -, hogy csinalj egy 16 bites osszeadast, ha jol emlekszem. NYILVAN nem allitom, hogy neha nem jo, ha _tenyleg_ tud a CPU "nativan" osszeadni 16 biten, ez csak egy pelda volt, de sok esetben igaz.

Azt erzem itt problemanak, hogy te itt a Z80 vs 65xx temat mindig Z80 oldalrol kozelited meg, es nem 65xx oldalrol amiben lathatoan nem vagy annyira otthon, es nem is erted, hogy 65xx-en ezt nem is igy szokas csinalni hanem sokkal hatekonyabban adott esetben, igy az osszehasonlitasnak sincs sok ertelme, ha a Z80-as megoldast varod el a 65xx-tol is. Kicsit maskepp kell gondolkodni, viszont cserebe van olyasmi amit 65xx-rol meg z80-ra nem tudsz atultetni, mert ott meg olyan nincs, vagy ott pont az nem igazan hatekony ...

Quote
A 8086-osba már a szorzást is beledrótozták a processzorba mikrokóddal, melyhez a z80-nál már szubrutin szükségeltetik.

No igen, de ez mar kicsit mas kerdes, ez meg integer MUL eseten is (bar nem FPU tema meg) nemikepp kulon szokott lenni kezelve a CPU "alap" dolgaitol, es nem is illik a jelen temaba (ahogy pl altalaban is a melyebb matematikai dolgok kulon egyseget kepviselnek es nem tartoznak szorosan az integer ALU-hoz feltetlen).

Quote
Programozhatósági kényelemről beszélek, hogy érthetőbb legyek, nem az ugyanazt eredményező kód végrehajtásának gyorsaságáról.

Jo, hat akkor tervezz CPU-t, ami kozvetlenul BASIC-et hajt vegre, meg nagyobb lenne a "kenyelem" :) En itt nagyon nem ertek veled egyet, nekem mindig az a kihivas, hogy alacsony szinten akarom a hw-t programozni, ahogy a hw van, azt akarom megtanulni, nem varom el, hogy a hw-t ugy tervezzek, hogy minnel kenyelmesebb legyen a lusta ember szamara, aki nem ismeri elegge a technologia miertjeit es hogyanjait. Ugye az meg egyertelmu, hogy manapsag mar a vilagon senki nem is gyartana CPU-t, ahol annak gepi szintje a programozas kenyelmesseget vennek figyelembe, sot egyes mai CPU-kra "kezzel" nem is egyszeru asm szintu kodot irni, mert tul sok mindent kell figyelembe venned, amit nem ismersz (jo pelda erre a RISC pipeline dolgoknal jelentkezo anomaliak, hogy pl latszolagosan ket utasitas feldolgozasi sorrendje megcserelodhet, amit figyelembe kell venni: x86 eseten pl komoly problemat okoz, hogy az alapvetoen RISC elvu belso felepites ellenere eliminaljak ezt, hiszen ez az x86-al inkompatibilitast vezetne be!).

Az hogy "programozasi kenyelem" az meg amugy is total szubjektiv, nekem az 65xx tok kenyelmesnek tunik, neked a jelek szerint meg nem :) En kesobb kezdtem el Z80-al foglalkozni, es nekem meg ma is nehezkesebbnek tunik. Ki mit szokott meg. Ehhez kepest azok az ervek ami a mukodesi sebesseg, fogyasztas stb kapcsan vannak, objektiv, merheto dolgok.

Quote
A magasszintű programnyelvek még több utasítást ismernek, a programnyelv utasításainak ismeretében jóval könyebb velük programokat készíteni. Ilyen értelemben egy bizonyos határig előny a programozó szempontjából a nagyobb utasításkészlet.

Bizonyos hatarig, de ha elolvasod a RISC/CISC tortenetet, latni fogod, hogy a CPU-k nativ utasitaskeszletet sokaig noveltek, annak a hidelemnek a kapcsan, hogy segiti a programozokat, egeszen addig a pontig, amig raeszmeltek, hogy voltakepp ez egy hasmis feltetelezes, ekkor kezdodott a RISC elotrtenete is: szandekosan elemibb, kevesebb, egyszerubb utasitasokkal a CPU meg mindig energiafelhasznalasilag hatekonyabb, gyorsabb es olcsobb lehet. Ok, ezzel szemben allhat amit te mondasz, hogy egy programozo szempontjabol szerinted kevesbe "kenyelmes". Viszont hasonlitsd ossze ezt az - amugy kisse szubjektiv - dolgot az elozoekkel, amit elonynek irtam.

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re: Az örök vita: EP vs C64
« Reply #198 on: 2014.September.08. 09:21:14 »
Igazad va, én elfogolt vagyok a z80 -al kapcsolatban, a 6502 -re csak ránéztem távolról, nézegettem egy pár assembler program részletét is, de z80 -as ismereteim alapján mit mondjak? Elborzatdatam.

Nem csak címszámításokra használjuk a 16 bites aritmetikát.

Oszt a képfeldolgozásnál ott vannak a félbájtos forgatási utasítások és a 16 bites regiszterekben lévő képelemek rotálásai, melyeket elképzelni is egyelőre nehéz, hogy az AXY regiszterekkel hogyan is lehetne megoldani. Még úgy is, hogy a nullás lap 256 bájltját használjuk regisztereknek.

Egyébként egyetértek a moduláris megvalósítással, hisz napjainkban egyre inkább az a tendencia, hogy minden egyes részfeladatra hardverekre specializált külön célprocesszorokat hoznak létre. Már  a tévékben, a fényképezőgépekben is külön spéci processzorok vannak, lassan a porszívókban is lesznek.
Annakidején már a C64 -nél is ez volt (SID és sprite cucc), az EP -nél is a NICK, meg a DAVE, és ott volt az ezeket használó és vezérlő központi CPU.
Valóban nem jó mindent beleintegrálni a CPU-ba, a legideálisabb, ha minden részfeladat végrehajtását rá tudja bízni végrehajtó egységekre.

De a pudding próbája az evés, ahogy az angol mondja. :)

Nekem a z80 szimpatikusabb volt és marad, ez tény. :cool:

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #199 on: 2014.September.08. 10:47:07 »
Quote from: Attus
Igazad va, én elfogolt vagyok a z80 -al kapcsolatban, a 6502 -re csak ránéztem távolról, nézegettem egy pár assembler program részletét is, de z80 -as ismereteim alapján mit mondjak? Elborzatdatam.

No igen, kicsit mas :) En lobb ismertem a 65xx-et, de a Z80 nem volt szamomra annyira megrazo, hiszen x86 assembly-t akkor mar ismertem, es arra azert (nem veletlenul) emlekeztet.

Quote
Nem csak címszámításokra használjuk a 16 bites aritmetikát.

Nyilvan nem csak. Es nyilvan vannak olyan feladatok/algoritmusok stb, amit konyebb Z80-on megoldani, de olyan is, amit 65xx-en.

Quote
16 bites regiszterekben lévő képelemek rotálásai, melyeket elképzelni is egyelőre nehéz, hogy az AXY regiszterekkel hogyan is lehetne megoldani. Még úgy is, hogy a nullás lap 256 bájltját használjuk regisztereknek.

Nem teljesen ertem, mire gondolsz de pl egy 16 bites ertek balra shift-elese egy bittel (raadasul ugy, hogy a memoriaban van a 16 bites szo, es oda is kell az eredmeny, tehat "in-place" kell a dolog) az 65xx-en ket utasitas (egy ASL es egy ROL). Ez 6 + 6 orajelciklus, es 6 byte-nyi kod. Ha a nullas lapon van, akkor csak 5+5 orajelciklus, es 4 byte-nyi kod (es egyetlen regiszter erteke sem modosul a CPU-ban illetve a cimzeshez sem kell, hasznalhatod masra - ezert is mondtam, hogy mas filozofia, nem feltetlen annyira gond a keves register mint aminek tunik elsore, mivel mas a filozofia kisse). Nezd meg, ha Z80-on kell megcsinalnod ugyanezt, nem szamoltam ossze. Persze, lehet mondani, hogy OK de ott a regiszerben is lehet kozvetlenul, nem kell memoria. Viszont elobb utobb a memoriaba kell megis a dolog, hiaba dolgozgatsz regiszterekben, be kell tolteni, ki kell irni aztan. Persze nyilvan olyan algoritmus is lehetseges, ahol registerben tarthato es erteke egyszeruen felhasznalhato pl egy ciklusban valamire, amivel ez igy akar hatekonyabb is lehet.

65xx-ben az is kulcskerdes, hogy nem feltetlenul van ertelme annak a kijelentesnek, hogy "de regiszterben levo ertekrol van szo", mert esetleg hatekonyabb kozvetlenul in-place ugymond megcsinalni a memoriaban, es meg igy sem lassu igazabol a dolog.

Quote
Nekem a z80 szimpatikusabb volt és marad, ez tény. :cool:

Az nem baj, ehhez mindenkinek joga van :) Amugy mint irtam, ne ertsd felre, en nem a Z80-at akartam "fikazni", csak jeleztem, hogy a 65xx azert nem "annyira rossz", ahogy te eloadtad (azzal viszont kevesbe lehet vitatkozni, hogy szamodra nem jon be - hisz az szubjektiv - de akkor meg kerulni kene az olyan magaslabdakat, hogy "kozismert" stb). Mivel Z80 assembly-vel kozelebbrol is foglalkoztam, 65xx-el meg szinten, ugy ereztem, talan tobbe-kevesbe objektiven is tudok fogalmazni, bar teljesen objektiven nyilvan en sem, mivel nekem is van kedvencem (65xx), de ettol a Z80-al sincs kulonosebb bajom, csak ennyt. Engem max az zavart, amikor azt irad, hogy "kozismert", hogy a Z80 toronymagasan veri a 65xx-et, meg ilyesmik. Nyilvan az teljesen mas kategoria viszont, hogy ki mit ismer jobban, es kinek mi tetszik.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Az örök vita: EP vs C64
« Reply #200 on: 2014.September.09. 11:14:25 »
Quote from: lgb
Nem teljesen ertem, mire gondolsz de pl egy 16 bites ertek balra shift-elese egy bittel (raadasul ugy, hogy a memoriaban van a 16 bites szo, es oda is kell az eredmeny, tehat "in-place" kell a dolog) az 65xx-en ket utasitas (egy ASL es egy ROL). Ez 6 + 6 orajelciklus, es 6 byte-nyi kod. Ha a nullas lapon van, akkor csak 5+5 orajelciklus, es 4 byte-nyi kod (es egyetlen regiszter erteke sem modosul a CPU-ban illetve a cimzeshez sem kell, hasznalhatod masra - ezert is mondtam, hogy mas filozofia, nem feltetlen annyira gond a keves register mint aminek tunik elsore, mivel mas a filozofia kisse). Nezd meg, ha Z80-on kell megcsinalnod ugyanezt, nem szamoltam ossze.
A memóriában léptetés a Z80-on meglehetősen lassú (RL (HL) = 15 ciklus, RL (IX + d) = 23 ciklus, és az előbbi esetben még valószínűleg növelni/csökkenteni kell az L-t a többi byte címzéséhez) a sok memória hozzáférés és a CB prefixes utasítások miatt. De hasonló léptetésre nagyobb számban valószínűleg nem túl gyakran van szükség, talán grafika scrollozásánál, de az 8 bites gépen nagy képernyő területen szoftveresen megoldva mindenképpen nagyon lassú. Viszont a 4 bites léptetés is egy utasítással megoldható.

Quote from: lgb
Persze, lehet mondani, hogy OK de ott a regiszerben is lehet kozvetlenul, nem kell memoria. Viszont elobb utobb a memoriaba kell megis a dolog, hiaba dolgozgatsz regiszterekben, be kell tolteni, ki kell irni aztan. Persze nyilvan olyan algoritmus is lehetseges, ahol registerben tarthato es erteke egyszeruen felhasznalhato pl egy ciklusban valamire, amivel ez igy akar hatekonyabb is lehet.

Az azért elég gyakori, ha a futásidő nagy részét viszonylag egyszerű, de sokszor lefutó ciklusok teszik ki. Ezeknek a helyi változói elférhetnek a Z80 regisztereiben, és ha esetleg nem férnek el, akkor jól optimalizált kód a leggyakrabban használtakat tartja regiszterekben.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Az örök vita: EP vs C64
« Reply #201 on: 2014.September.09. 11:42:11 »
Quote from: lgb
Az hogy "programozasi kenyelem" az meg amugy is total szubjektiv, nekem az 65xx tok kenyelmesnek tunik, neked a jelek szerint meg nem :) En kesobb kezdtem el Z80-al foglalkozni, es nekem meg ma is nehezkesebbnek tunik. Ki mit szokott meg. Ehhez kepest azok az ervek ami a mukodesi sebesseg, fogyasztas stb kapcsan vannak, objektiv, merheto dolgok.

Bizonyos hatarig, de ha elolvasod a RISC/CISC tortenetet, latni fogod, hogy a CPU-k nativ utasitaskeszletet sokaig noveltek, annak a hidelemnek a kapcsan, hogy segiti a programozokat, egeszen addig a pontig, amig raeszmeltek, hogy voltakepp ez egy hasmis feltetelezes, ekkor kezdodott a RISC elotrtenete is: szandekosan elemibb, kevesebb, egyszerubb utasitasokkal a CPU meg mindig energiafelhasznalasilag hatekonyabb, gyorsabb es olcsobb lehet.
A CISC utasításkészletek elsősorban a kézzel írt assembly kódot (ami 8 bites gépeken az elsődleges módja volt komolyabb programok írásának, de a korai DOS-os PC-ken sem volt ritka) próbálják "kényelmesebbé" tenni. Az újabb processzoroknál ez kevésbé fontos, az optimalizáló C (és egyéb) fordítóknál pedig előny lehet az egyszerű - legalábbis viszonylag egyszerű, nem feltétlenül 6502 szintű, egységes, és kevésbé "trükkös" utasításkészlet.

A Z80 kényelmesebb assembly programozása nekem nem tűnik teljesen alaptalannak. Legalábbis én a 6502-t tanultam először (C+4-en), és utána a Z80 kezdetben furcsának tűnt, például az indexelt címzési módok hiánya és az utasítások "lassúsága" miatt, de hamar sikerült átállni az eltérő programozási stílusra. Azonban hosszabb Z80 használat után 6502-re visszatérni már nehezebbnek tűnik. :oops:

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #202 on: 2014.September.09. 13:53:50 »
Quote from: IstvanV
A CISC utasításkészletek elsősorban a kézzel írt assembly kódot (ami 8 bites gépeken az elsődleges módja volt komolyabb programok írásának, de a korai DOS-os PC-ken sem volt ritka) próbálják "kényelmesebbé" tenni. Az újabb processzoroknál ez kevésbé fontos, az optimalizáló C (és egyéb) fordítóknál pedig előny lehet az egyszerű - legalábbis viszonylag egyszerű, nem feltétlenül 6502 szintű, egységes, és kevésbé "trükkös" utasításkészlet.

Igen, ez a CISC/RISC dolgot amugy max nagyon eros joindulattal lehet olyasmikre alkalmazni, mint a 65xx vagy a Z80, nyilvan a 65xx sem RISC. En max ugy fogalmaztam, hogy egy-ket tekintetben vonhato kb "feelingre" parhuzam :) Egy "igazi" mai RISC-re "kezzel" hatekony asm kodot irni eleg nehez, a fordito abban jobb :) Az meg hagyjan, hogy "tul sok" regiszter van (az emberi agy allitolag 7 dolgot tud kb otimalisan kezelve gondolkodni), nem tudod, mit lenne hatekonyabb pl 32db registerbe pakolni es mit nem. Masreszt, vannak olyan extra dolgok mint az execution gap vagy hogy is hijjak (pl sparc-on amikor a call _utan_ van egy reg feltoltese, de a kod vegrehajtasanal nemi pipeline specialitas miatt valojaban a ketto forditva fog megtortenni, azert is kerul utana, hogy legalabb kihasznalja azt a latency-t amit a pipeline uritese amugy is "kikenyszerit"), ami emberi esszel finoman is fura :) Azert egy 65xx nem ennyire trukkos, az a keves regisztere ami van, meg a RISC elvvel ellentetben nagyon is specialis (X/Y indexregister, de nem is pontosan ugyanolyan cimzesmodokra lehet hasznalni, ALU-val viszont csak az akkumlator hasznalhato, stb), nem "egyenranguak".

Az mar szubjektiv, hogy 65xx-ben pont az tetszik nekem, hogy nagyon "finoman" lehet optimalizalni, es lemenni a "CPU gondolkodasi szintjere" ugymond. Bar valakinek ez inkabb hatrany mint elony biztosan.

Quote
A Z80 kényelmesebb assembly programozása nekem nem tűnik teljesen alaptalannak. Legalábbis én a 6502-t tanultam először (C+4-en), és utána a Z80 kezdetben furcsának tűnt, például az indexelt címzési módok hiánya és az utasítások "lassúsága" miatt, de hamar sikerült átállni az eltérő programozási stílusra. Azonban hosszabb Z80 használat után 6502-re visszatérni már nehezebbnek tűnik. :oops:

Mivel en aktivan nyomom a 65xx-t nekem nem nehez, de abban igazad van, hogy Z80-rol 65xx-re menni asm-ban az nem lehet trivialis, legalabbis kevesbe az, mint forditva, bar az is tartogathat meglepeteseket :)

Amugy az egesz tema csupan annyibol indult ki, hogy nekem nem tetszett az a mondat, hogy "kozismert hogy a Z80 toronymagasan veri a C64 cpu-jat", ezt nem erzem tulsagosan megalapozottnak, bar teny, hogy a ketto elegge mas uborka.

Nekem tovabbra is kenyelmesebb a 65xx, de valoszinu, ez azert van, mert azt joval regebben nyomom, es tobb tapasztalatom is van benne, mint Z80-bol.

Offline DrPrery

  • EP user
  • *
  • Posts: 264
  • Country: hu
Re: Az örök vita: EP vs C64
« Reply #203 on: 2014.September.09. 15:20:19 »
Quote
nyilvan a 65xx sem RISC
Nem hát, pl. nem LOAD/STORE elvű, ugye... :)

Quote
de abban igazad van, hogy Z80-rol 65xx-re menni asm-ban az nem lehet trivialis
Na, az ARM assembly se lenne kutya, ha pl. a feltételes utasításvégrehajtás dolgát nézzük... :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #204 on: 2014.September.09. 16:42:59 »
Quote from: DrPrery
Nem hát, pl. nem LOAD/STORE elvű, ugye... :)

Igen, ezt probaltam elmagyarazni, hogy RISC-szeru a maga koraban nezve valamennyire egy masik CPU-val osszehasonlitva stb, a mai RISC fogalom nyilvan nehezen definialhato ra.

Offline Judge

  • EP lover
  • *
  • Posts: 679
  • Country: hu
Re: Az örök vita: EP vs C64
« Reply #205 on: 2017.August.15. 17:41:33 »
Azért jó tudni,hogy a 007-es melyik oldalon állt... :)

[ Guests cannot view attachments ]
Üdv.Judge

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Az örök vita: EP vs C64
« Reply #206 on: 2017.August.15. 19:19:30 »
Azért jó tudni,hogy a 007-es melyik oldalon állt... :)
:ds_icon_cheesygrin: