Welcome, Guest. Please login or register.


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

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #180 on: 2014.September.06. 23:43:36 »
Quote
A C64 processzorát meg egyébként az utasításkészletét tekintve tartom kevesebbre, nem pedig azzal a pár regiszterével megvalosított gyorsaságát és hatékonyságát.

Na akkor nem ertelek. Korunk vivmanya pont a RISC, azaz, hogy minnel egyszerubb CPU-t epitsunk. Ennek "elofutara" a 65xx CPU csalad is, ahol szinten rajottek arra, ami a modern RISC elvekben csucsosodik ki persze rendesen: egy CPU, amiben egyszerubb az utasitaskeszlet, voltakeppen jobb teljesitmeny, gazdasagossak es par mas szempontbol is. Az a jobb CPU ami (adott szintet azert persze nem alulmulva mert kulonben tenyleg "tul" egyszeru lesz) minnel egyszerubb, erre fele tart a technika is. Az mas kerdes, hogy az x86 csalad az egy nagy gany, mert ISA szempontjabol CISC-nek tunik, de belsoleg RISC szeru, ez viszont elegge bonyolitja az implementaciojat, dehat mindent a kompatibilitasert, ugyebar. A Z80 meg szegrol-vegrol vegulis rokon a modern x86 CPU-kkal is, mert ugye a Z80 alapvetoen egy intel 8080-al felulrol komptibilis bovitett CPU, a 8086 pedig (majd kesobb a 80286, stb) pedig igaz nem kozvetlenul es nem is sw compatible modon de nem teljesen idegen a 8080-al. A 65xx ehhez kepest egy teljesen uj elvet kepviselt, ahol ugy probaltak kolcseghatekony de relative jo CPU-t csinalni, hogy minnel egyszerubben valositjak azt meg, innen az a mondas, hogy "a RISC elvek eloszele" cimszo alatt is el lehetne nevezni nemi tulzassal (valojaban annyira nem meglepo, mert a manpsag egyik legjobban ismert RISC CPU architekturajat az ARM-ot - erdeti roviditese: Acorn Risc Machine - az Acorn tervezte, aki megrogzott 65xx CPU-kat felhasznalo ceg volt, bar talan hazankban kevesbe ismert, pl BBC Micro, Acorn Atom, stb gepek gyartoja, Sir Sinclair -el is utkoztek, mivel Sinclair is palyazott a BBC-s gep cimert, amit vegulis nem a Spectrum nyert hanem az Acorn gepe ami ezek utan BBC Micro neven is futott).

Az valojaban csak hatrany, ha egy CPU utasitaskeszlete bonyolult (aka CISC) ez a technika oskorara volt jellemzo, amikor akar tobb szaz olyan utasitast is implementaltak, amit hasznosnak gondoltak pl forditoprogramok iroinak, de hamar rajottek, hogy a CPU-t ez bonyolitja, ami elemi utasitasokat is lassit akar, es/vagy a komplex utasitasok egyszerubbekkel meg gyorsabban is implementalhatoan. Ezen gondolat menten kezdtek a RISC elvek fejlodni, majd hatterbe szoritani a CISC-et.

Remelem igy mar minden tiszta, es ertheto, hogy az egyszeruseg az nem hatrany, sot, erre epulnek a mai modern CPU-k is, kulonben minden joval lassabb lenne jelenleg is :)
« Last Edit: 2014.September.06. 23:52:58 by lgb »

Offline DrPrery

  • EP user
  • *
  • Posts: 260
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 30.0 Firefox 30.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #181 on: 2014.September.07. 08:38:31 »
Hehe, ha jól sikerült magamban összegeznem az előző hozzászólás lényegét, akkor meglehet, hogy Zozo nemsokára megjelenik kivont alabárddal... :ds_icon_cheesygrin:

(Mellesleg egy külföldi fórumon olvastam, hogy valaki megjegyezte: ha netán C-fordítót akarna írni retro kütyüre, akkor inkább a Z80-at választaná.)

Persze a 6502 ettől még lehet gyors, de van akinek az ilyenfokú egyszerűség már megfekszi a gyomrát...

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #182 on: 2014.September.07. 09:09:17 »
Quote
(Mellesleg egy külföldi fórumon olvastam, hogy valaki megjegyezte: ha netán C-fordítót akarna írni retro kütyüre, akkor inkább a Z80-at választaná.)

Na igen, C fordito eseten amugy ez tenyleg igaz, de imho C forditot 8 bites cuccokra nem is feltetlen jo otlet irni. A problema amugy az, hogy egy "valodi" C fordito intenziven hasznalja a stack-et, pl lokalis valtozok ott vannak ugye, ami azert Z80 eseten sem lesz ugyanolyan gyors, egyszeruen erre kevesbe alkalmas egy ilyen CPU, mint a Z80 vagy a 6502 (es hasonlo). Igaz, attol meg igaz, hogy ha mar kell, Z80-ra valoban egyszerubb talan C compilert irni. Pont azert mert a Z80 "CISC-esebb", a 6502 meg "RISC-esebb", nemileg, bar ez a hasonlat persze elegge santit, max feelingre igaz :D Modern CPU-knal pont az igaz, hogy konyebb optimalizalni egy compilernek is egy unified ISA-ra, mint vmi specko CISC felepitesre (ahol pl egy-egy regiszternek specko szerepe van lasd pl (E)CX a loop op eseten x86-on es ilyenekre gondolok).

Quote
Persze a 6502 ettől még lehet gyors, de van akinek az ilyenfokú egyszerűség már megfekszi a gyomrát...

Igen, valoszinu, hogy ezek az emberek modern RISC CPU-kon is csuklananak ezerrel, mert ott is az egyszeruseg a kulcs :) Magyaran nem ertik a CPU-k mukodesenek lenyeget az ilyen emberek, hogy miert jo az egyszeruseg, mi a lenyege, illetve talan nem is probaltak, csak ranezesbol itelnek. En jobban szeretek 6502-n assembly-zni mint Z80-on pl. De ugye ez mar tenyleg szubjektiv dolog!

Ennek ellenere pl van olyan ami szamomra megdobbento, hogy milyen bonyolultan hozhato ossze Z80-on, es milyen egyszeru 6502-n pedig total egyszeru muvelet: legyen pl a tablazat valahol a memoriaban, es olvassuk be az X-edig emelet, ahol X egy regiszterben levo ertek. Ez megfelel ugye magas szintu programrozasi nyelvekben kb annak, hogy egy tomb X-edik eleme. Ez 6502 byte meretu offset eseten konkretan egy utasitas, Z80-on iszonyat lassu es bonyolult ehhez kepest, pl HL-be betoltod a kezdocimet a tablazatnak, aztan hozzaadod az offset-et, stb, majdnem leesett az alam amikor eloszor meglattam, hogy ilyen alap dolog ennyire tul van bonyolitva a Z80-on ... De nyilvan ez is szokas kerdese.
« Last Edit: 2014.September.07. 09:13:49 by lgb »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #183 on: 2014.September.07. 10:20:16 »
Quote from: Z80System
valahogy mindíg az lett az eredmény úgy emlékeim szerint, hogy z80 -on kényelmesebben lehetett kódolni, de nem lesz gyorsabb a futó program egy kód módosítást aktívan használó C+4 -es programnál, sőt ...
Azonos órajelen ugyan a 6502 2-3x gyorsabb, de egy ~1 MHz-es 6502 még így is lassabb, mint egy 4 MHz-es Z80. A PAL C+4 processzora elvileg 1.7734475 MHz-es, de ezt a gyakorlatban a memória TED-el megosztott elérése miatt nem tudja elérni, és normál 40x25 karakteres képernyőnél az átlagos sebesség csak kb. 1.14 MHz-es órajelnek felel meg. Kikapcsolt (teljesen keretszínű) képernyőnél 1.696 MHz, ezt NTSC móddal "túlpörgetve" pedig 2.12 MHz, de például játékoknál - ahol fontos a sebesség - komoly hátrány, ha nincs kép.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #184 on: 2014.September.07. 10:30:09 »
Quote from: lgb
Ennek ellenere pl van olyan ami szamomra megdobbento, hogy milyen bonyolultan hozhato ossze Z80-on, es milyen egyszeru 6502-n pedig total egyszeru muvelet: legyen pl a tablazat valahol a memoriaban, es olvassuk be az X-edig emelet, ahol X egy regiszterben levo ertek. Ez megfelel ugye magas szintu programrozasi nyelvekben kb annak, hogy egy tomb X-edik eleme. Ez 6502 byte meretu offset eseten konkretan egy utasitas, Z80-on iszonyat lassu es bonyolult ehhez kepest, pl HL-be betoltod a kezdocimet a tablazatnak, aztan hozzaadod az offset-et, stb, majdnem leesett az alam amikor eloszor meglattam, hogy ilyen alap dolog ennyire tul van bonyolitva a Z80-on
Egyszerű megoldás: 256 byte-os határra kell igazítani a táblázatot, és akkor a cím felső byte-ja (H) fix, és elég csak az alsót (L = táblázat eleme) változtatni a ciklusban. Szekvenciális elérésnél a bonyolult számítás a cikluson kívülre kerül, és a ciklusban csak növelni vagy csökkenteni kell a címet (INC HL, stb.). A veremmutató használatával tovább lehet optimalizálni a kódon, egy POP utasítás egyszerre két byte-ot olvashat a táblázatból 10 ciklus alatt, és a címet is növeli.

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #185 on: 2014.September.07. 10:33:23 »
Quote from: IstvanV
Egyszerű megoldás: 256 byte-os határra kell igazítani a táblázatot, és akkor a cím felső byte-ja (H) fix, és elég csak az alsót (L = táblázat eleme) változtatni a ciklusban. Szekvenciális elérésnél a bonyolult számítás a cikluson kívülre kerül, és a ciklusban csak növelni vagy csökkenteni kell a címet (INC HL, stb.). A veremmutató használatával tovább lehet optimalizálni a kódon, egy POP utasítás egyszerre két byte-ot olvashat a táblázatból 10 ciklus alatt, és a címet is növeli.

Igen, ebben igazad van, csak szamomra tenyleg fura, hogy Z80-on hianyzik az a cimzesmod, hogy register+constans cimzesmod. Igen, a (IX+d) az hasonlo, csak valahogy a forditottja is jo lenne, marmint: 16 bites cim es ahhoz kepest akar csak egy 8 bites registerrel kifejezheto offset, tehat a konstans kepes legyen lefedni a CPU cimtartomanyat. Errol mar beszeltunk egyszer, hogy a 256 byte-os hatarra igazitas, de ez szamomra olyan workaround, nehezkes is, memoriapazarlas is lehet, foleg, ha sok tablazatod van, es nem is tesznek ki amugy 256 byte-ot pl. Dehat ez van.

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #186 on: 2014.September.07. 10:41:31 »
Quote from: IstvanV
Azonos órajelen ugyan a 6502 2-3x gyorsabb, de egy ~1 MHz-es 6502 még így is lassabb, mint egy 4 MHz-es Z80.

Igen, ezt en is igy tudom. A 6502 erdekessege a Z80-hoz kepest, hogy Z80-on kulonbontottak a memoriahozzaferesekre jellemzo ciklusokat (M-cycle) es a CPU belso ciklusszamot (T-cycle). 6502 jellegu CPU-knal a ketto tok ugyanaz. Ezert is van, hogy 65xx CPU-nal nincs memoriahozzaferest mutato jel, mert _minden_ orajelciklusban van memoriahozzaferes, tehat az orajel adja a memoria engedelyezo jelet. Amennyire tudom, pont ez is volt a "baj" 65xx CPU-kkal, es ezert mentek atlagosan alacsonyabb orajelen: koreszerubb ISA-nak tekintheto, de az akkori memoriak nem feltetlen voltak eleg gyorsak, hogy pl 4MHz-en menjen egy 65xx, nem birna a memoria, mig Z80-nal pl a 4MHz nem gond, mivel a memoriahozzaferesek rataja viszonyt alacsonyabb is kb az M/T cycle aranyaval kisebb a CPU orajelenel. Vagy hasonlo :) 65xx eseten en egyetlen komoly hatranyt latok ami mindig is zavart: a stack csak 256 byte, es fix helyen van. Igaz, pl ahogy par 6502 "guru" kifejtette (es en is ezt tapasztaltam): a valos esletben nem szokott ez kevesnek bizonyulni megse! Viszont pl ha az ember multitask jellegu OS-t irna 8 bitre ott gond, hogy nem lehet egyszeruen "stack-et valtani" hogy 16 bites stack pointerbe csak uj erteket irok pl es igy mashol van maris teljesen a stack ... Bar valoszinu ez is sokat gyorsit a 65xx mukodesen: eleg a 8 bites stack pointert menteni pl egy JSR (aka z80 CALL) eseten vagy egy interrupt eseten. Mondjuk a 65816 mar rulZ (es meg mindig gyartjak, CMOS verzioban, megy 20MHz-en is!), eleve annak van 16 bites modja, meg tud cimezni 16MByte memoriat, es a stack pointer is 16 bites. Bar ez mar ugye nem az "alap teljesen 8 bites" 65xx az is igaz, tehat nem teljesen fair osszehasonlitani egy Z80-al nyilvan! 65816 volt pl a SuperCPU nevu cartridge-ben, amit C64-hez (es 128-hoz is talan?) lehetett szerezni, bar szerintem nem sok embernek volt, es eleg ritka is, ma meg mar foleg!

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #187 on: 2014.September.07. 11:13:12 »
Quote from: lgb
65xx eseten en egyetlen komoly hatranyt latok ami mindig is zavart: a stack csak 256 byte, es fix helyen van. Igaz, pl ahogy par 6502 "guru" kifejtette (es en is ezt tapasztaltam): a valos esletben nem szokott ez kevesnek bizonyulni megse!
Magas szintű nyelveknél (pl. C), különösen rekurziót használva, könnyen kevésnek bizonyulhat. De éppen ezért a fordítók valószínűleg "szoftveres" vermet használnak, amely a 0. lapon tárolt változókkal címezhető.

Hátrány még, és nem igazán RISC-szerű tulajdonság a nagyon kevés és korlátozott módon használható regiszter. Nem lehetségesek a regiszterek közötti műveletek sem, például az A regiszterhez hozzáadni az X-et vagy Y-t. Szintén nem lehet csak regiszterekkel memóriát címezni, ami nehezíti a kezdőcímek áthelyezhetővé tételét. Bár a memóriában a 0. lapon a $02-$FF terület 254 regiszternek is tekinthető, amelyeket változóknak és memória címzésre is lehet használni. Így azonban már csökken azonos órajelen az előny a Z80-hoz képest, ahol több változó kerülhet regiszterbe.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #188 on: 2014.September.07. 11:52:15 »
Quote from: lgb
Igen, ebben igazad van, csak szamomra tenyleg fura, hogy Z80-on hianyzik az a cimzesmod, hogy register+constans cimzesmod. Igen, a (IX+d) az hasonlo
A Z80 indexelt címzése elsősorban nem táblázatokhoz, hanem C-szerű struktúrákhoz használható, ahol a struktúra->változó eltolás (d) konstans, és a kezdőcím változhat. Hasznos lehet még frame pointernek helyi változókhoz (pl. C fordítóknál), de akkor a változók csak kis területet foglalhatnak el.

Quote from: lgb
Errol mar beszeltunk egyszer, hogy a 256 byte-os hatarra igazitas, de ez szamomra olyan workaround, nehezkes is, memoriapazarlas is lehet, foleg, ha sok tablazatod van, es nem is tesznek ki amugy 256 byte-ot pl. Dehat ez van.
Természetesen nem kell mindent 256 byte-os határra igazítani, csak azokat a táblázatokat, ahol a gyakorlatban előnyt (azaz észrevehetően jobb sebességet) jelent. Ritka hozzáférésnél nem probléma a lassúság, és általában akkor sem, ha a cím számítása cikluson kívül történik. Jól megírt programnál általánan elfogadható mértékre korlátozható a pazarlás és a lassúság is. De eredetileg 6502-es kód Z80-ra "fordítása" már nehezebb, mert az optimális megoldáshoz nagyobb módosításra lehet szükség.

Offline Attus

  • EP addict
  • *
  • Posts: 1230
  • Country: hu
  • OS:
  • Linux (Gentoo) Linux (Gentoo)
  • Browser:
  • Links 2.8 Links 2.8
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #189 on: 2014.September.07. 13:46:02 »
Szerintem meg a z80 -as processzorral rendelkező EP-re könyebb lett volna jó szofvereket írni, mint a 65xx-re, egy jó szoftverfejlesztő gárdának, a nagyobb utasításkészlet birtokában.
A táblázatos és stackos és az önkód módosító fogásokkal meg az időérzékeny részeket gyönyörűen meg lehet valósítani, a hardveres sprite hiány ellenére.
A dosra assemblerben írt enterprise  emulátoromnál a z80 regisztereit például a 8086-os regisztereinek feletettem meg, amikkel egymás közt műveleteket, bittolásokat is hasonlóan lehet végezni, és nem kell a memóriához fordulni! A VGA programrészeknél meg intezíven alkalmaztam a pop/push stackos és táblázatos fogásokat, melyeket anno a z80 -nál is használtam a spectrum programok átírásakor.
Az, hogy nem volt a szofverírásra gárda, az nem a gép "vacak" voltának köszönhető. A C64 esetében naná, hogy az amcsi agressszív nyomulásnak köszönhetőn volt szofverírás és pörgött az üzlet.
Nem is tudom, hogy volt, vagy van egyáltalán olyan elterjedt gép a piacon, mely nem angolszász eredetű?

Offline Kapitany

  • EP fan
  • *
  • Posts: 229
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 37.0.2062.94 Chrome 37.0.2062.94
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #190 on: 2014.September.07. 21:08:07 »
Quote from: DrPrery
Hehe, ha jól sikerült magamban összegeznem az előző hozzászólás lényegét, akkor meglehet, hogy Zozo nemsokára megjelenik kivont alabárddal... :ds_icon_cheesygrin:

(Mellesleg egy külföldi fórumon olvastam, hogy valaki megjegyezte: ha netán C-fordítót akarna írni retro kütyüre, akkor inkább a Z80-at választaná.)

Persze a 6502 ettől még lehet gyors, de van akinek az ilyenfokú egyszerűség már megfekszi a gyomrát...
Zozo nem hozta magával az alabárdot, vagy még csak nem vonta ki... :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.103 Chrome 37.0.2062.103
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #191 on: 2014.September.07. 21:11:41 »
Quote
Zozo nem hozta magával az alabárdot, vagy még csak nem vonta ki... 

Adjatok neki még egy kis időt ... :)
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #192 on: 2014.September.07. 21:33:30 »
Quote from: IstvanV
Magas szintű nyelveknél (pl. C), különösen rekurziót használva, könnyen kevésnek bizonyulhat. De éppen ezért a fordítók valószínűleg "szoftveres" vermet használnak, amely a 0. lapon tárolt változókkal címezhető.

Jah, pl a cc65 is vhogy igy csinalja ha jol tudom (a "hw" verem tovabbra is hasznalva van pl visszateresi cimekre, de ha jol tudom a lokalis valtozok mar "sw stack jellegu" cuccba kerul valojaban). Bar akarhogy is nezzuk, azert egy 8 bites CPU sem feltetlen a C-re termett egyertelmuen :)

Quote
Hátrány még, és nem igazán RISC-szerű tulajdonság a nagyon kevés és korlátozott módon használható regiszter. Nem lehetségesek a regiszterek közötti műveletek sem, például az A regiszterhez hozzáadni az X-et vagy Y-t. Szintén nem lehet csak regiszterekkel memóriát címezni, ami nehezíti a kezdőcímek áthelyezhetővé tételét. Bár a memóriában a 0. lapon a $02-$FF terület 254 regiszternek is tekinthető, amelyeket változóknak és memória címzésre is lehet használni. Így azonban már csökken azonos órajelen az előny a Z80-hoz képest, ahol több változó kerülhet regiszterbe.

Na igen, a nevezett nullas lap (ami alapbol ugye 256 byte 6502-n, de pl a C64 6510-ese es mas CPU-k is a CPU-ra integralt I/O portra elhasznal 2 byte-ot a 0-as es az 1-es cimen) a 65xx erossege, annyira, hogy 8080/Z80 vonalon is szemet vetettek ra, legalabbis ha jol remlik a GameBoy CPU-ja (ami alapvetoen inkabb 8080 mint Z80, pl nincs IX es IY register sem) is hasznal egy byte-os cimeket is. Abban igazad van, hogy RISC-nek nevezni a 6502-t eros tulzas (szoval vigyazni kell az ilyen fogalmakkal azert), foleg, mivel nem is igazan volt ilyen tiszta fogalom akkor meg. Ennek ellenere en a nullas lapot sok tekintetben inkabb erzem registereknek, bar az teny, hogy nem lesz olyan gyors, mint az A/X/Y azert nyilvan!

Amugy, a 6502 es csaladjat sok tekintetben a 6800 (motorola) ihlette, vegulis onnan kivalt mernokok csinaltak (ez hasonlithat a Z80 tortenetehez, ahol az inteltol kivalt mernokok alapitottak a Zilog ceget, vagy rosszul tudom?). A 6800 eseten van index register ami valojaban 16 bites, es talan ket akkumlatora volt (A, B). A 6502 azzal robbantott, hogy egy egyszeru de megis hatekony tervezessel toredeke (eleg durvan) aron kihoztak, bar kisse atszerveztek a dolgokat, index register lett ketto, am de 8 bites mindketto, nem egy 16 bites, akkumlatorbol csak egy van, stb. 6800-ast annyira mondjuk nem ismerem ...

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: Az örök vita: EP vs C64
« Reply #193 on: 2014.September.07. 21:42:04 »
Quote from: Attus
Szerintem meg a z80 -as processzorral rendelkező EP-re könyebb lett volna jó szofvereket írni, mint a 65xx-re, egy jó szoftverfejlesztő gárdának, a nagyobb utasításkészlet birtokában.

Bocsi, de neked maniad a nagyobb utasitaskeszlet = jobb elv, de nem tudom ezt mivel indokolod, konkret peldakkal. Pont az a jo, ha minnel egyszerubb, de hatekonyabb az utasitaskeszlet. Persze nem minden feher/fekete, azert ezt tisztan igy leszogezni nehez, ezert is kerdem mar masodjara, hogy ezt mibol szurted le konkretan, hogy ertsem is, mi a problemad a 65xx utasitaskeszletevel.

Quote
A táblázatos és stackos és az önkód módosító fogásokkal meg az időérzékeny részeket gyönyörűen meg lehet valósítani, a hardveres sprite hiány ellenére.
A dosra assemblerben írt enterprise  emulátoromnál a z80 regisztereit például a 8086-os regisztereinek feletettem meg, amikkel egymás közt műveleteket, bittolásokat is hasonlóan lehet végezni, és nem kell a memóriához fordulni!

Itt azt nem latod, hogy a 65xx pont azzal az elkepzelessel keszult, hogy joval gyorsabb a memoria hozzaferes mint Z80 eseten, raadasul ha a nullas lapot hasznalod, akkor konkretan meg gyorsabb es az opcode is rovidebb (1 byte-os cim). Tehat az, hogy "nem kell a memoriahoz fordulni" az 65xx eseten nem elony, mert alapvetoen mas az ISA filozofiaja. Na, ez viszont jo pelda arra, hogy a modern "RISC" fogalom nehezen definialhato az ilyen regi CPU-knal, hiszen egy modern RISC architektura eseten valojaban register-bol van sok, ami 65xx eseten nem mondhato el. Ezert is mondtam, hogy vigyazni kell ezzel a fogalommal, 65xx nehany szempontbol "RISC-szeru", amde mivel akkor kisse mas volt meg a vilag, nem lehet tisztan definialni illetve pont olyan CPU-t alkotni azon a technikai szinten (illetve nem is lenne ertelmes!). Ugyanis a hatekony felepites nyilvan az adott kor technikai szintje eseten vizsgalando (pl ha most jonne olyan memoria technika, hogy nem lenne lassabb mint a CPU belso registerei, es olcso is lenne, ez nyilvan azonnal atrendezne a mai modern CPU-kkal kapcsolatos mainstream elveket is ....).

Szerintem a te esetedben ez a "nem kell memoriahoz fordulni!" elv Z80-as tapasztalataid alapjan adodtak, es ott igazad is van, az Z80-on lassu. 65xx-en azonban elegge mas a helyzet (T=M cycle), illetve erre is epul az egesz filozofia.

Amugy felreertes ne essek, nem mondom, hogy a Z80 "vacak" vagy barmi hasonlo! Csak a ketto mas, es nem erzem, hogy "kozismert lenne hogy a Z80 magasan veri a 65xx-t". Az meg teljesen szubjektiv dolog, hogy nekem a 65xx asm jobban is tetszik, mint a Z80. Ettol meg nem batom a Z80-at, es szertem azt is, nem kell felreerteni :)
« Last Edit: 2014.September.07. 22:07:03 by lgb »

Offline Attus

  • EP addict
  • *
  • Posts: 1230
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 23.0 Firefox 23.0
    • View Profile
Re: Az örök vita: EP vs C64
« Reply #194 on: 2014.September.07. 22:06:53 »
Quote from: lgb
Bocsi, de neked maniad a nagyobb utasitaskeszlet = jobb elv, de nem tudom ezt mivel indokolod, konkret peldakkal. Pont az a jo, ha minnel egyszerubb, de hatekonyabb az utasitaskeszlet. Persze nem minden feher/fekete, azert ezt tisztan igy leszogezni nehez, ezert is kerdem mar masodjara, hogy ezt mibol szurted le konkretan, hogy ertsem is, mi a problemad a 65xx utasitaskeszletevel.
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?

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.

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.

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.