|
||||||||||||
AW: Schachcomputer Prozessor Vergleich
Puh, die genauen Quellen kriege wohl nicht mehr alle zusammen. Das angesprochene Buch aus der DDR ist folgendes Computerschach - Schachcomputer. Darin werden 18 MHz Z80 mit 6,5 MHz 6502 gleichgesetzt.
Die Äquivalenz von 4 MHz Z80 gegen 1 MHz 6502 kann eigentlich nur für Spiele gelten, die die besonderen Eigenschaften des C64 nutzen. Grafik (Sprites!) und Sound sind beim C64 von Anfang an sehr gut gewesen, andere Heimcomputer haben dafür deutlich länger gebraucht. Ein hübscher Artikel dazu ist dieser hier. Ich kenne nur wenige Programme, die in vergleichbarer Qualität auf beiden CPUs umgesetzt wurden, zumal die Möglichkeiten unterschiedlich sind. Eine 6502 ist für kleine Programme mit wenig Daten gut geeignet. Die Zeropage ermöglicht einen schnellen Zugriff auf bis zu 256 Byte und ist mit kurzen Adressen auch relativ kompakt. Sowie aber Programm und Daten größer werden, fehlen 16-Bit Arithmetik und größerer Stack. Für "echte" Software war deshalb die Z80-Karte für den Apple II mit 2 MHz so beliebt. Die Beliebtheit der 6502 für die Schachprogrammierung (im Vergleich zur Z80) dürfte drei Gründe haben: Die CPU war lange Zeit richtig preiswert, die Programme hatten in den ersten Jahren noch geringere Größen und in den 80ern waren schnellerer Speicher und 6502 mit bis zu 5 MHz technisch und wirtschaftlich besser als eine Z80 mit 10 MHz oder gar einer der Nachfolger (z.B. HD64180). Und der nächste Schritt war teuer: 68000 mit 8 MHz oder Exoten wie die 6809 (die dann auch nur mit 2 MHz gelaufen wären...). Ich kenne mich mit der 6502 nur sehr wenig aus und kenne daher viele Programmiertricks nicht. Bei der Z80 sind mir die meisten Tricks wohlbekannt und der Fortschritt gegenüber der 8080 ist deutlich (viele Programme haben da einen Faktor 2). Der Faktor von 2,5 zwischen 4 MHz Z80 und 1 MHz 6502 beim Dhrystone-Test dürfte aber zu groß sein. Denn bei einem Schachprogramm kann man einen Teil der Arithmetik mit 8 Bit machen und Compiler sind einfacher für eine Z80 zu programmieren als für die 6502. Wie Du siehst, es gibt Angaben im Bereich zwischen Faktor 1,6 (halte ich für übertrieben, so gut ist die Z80 dann wohl doch nicht) und Faktor 4 (kann nur mit Hardwareunterstützung beim C64 erreicht werden). Den Faktor 2,75 in der Mitte sehe ich da durchaus als guten Schätzwert an. Ich könnte aber bei einem Vergleich nur die Z80 programmieren. ![]() |
|
||||||||||||
Re: AW: Schachcomputer Prozessor Vergleich
Puh, die genauen Quellen kriege wohl nicht mehr alle zusammen. Das angesprochene Buch aus der DDR ist folgendes Computerschach - Schachcomputer. Darin werden 18 MHz Z80 mit 6,5 MHz 6502 gleichgesetzt.
Die Äquivalenz von 4 MHz Z80 gegen 1 MHz 6502 kann eigentlich nur für Spiele gelten, die die besonderen Eigenschaften des C64 nutzen. Grafik (Sprites!) und Sound sind beim C64 von Anfang an sehr gut gewesen, andere Heimcomputer haben dafür deutlich länger gebraucht. Ein hübscher Artikel dazu ist dieser hier. Ich kenne nur wenige Programme, die in vergleichbarer Qualität auf beiden CPUs umgesetzt wurden, zumal die Möglichkeiten unterschiedlich sind. Eine 6502 ist für kleine Programme mit wenig Daten gut geeignet. Die Zeropage ermöglicht einen schnellen Zugriff auf bis zu 256 Byte und ist mit kurzen Adressen auch relativ kompakt. Sowie aber Programm und Daten größer werden, fehlen 16-Bit Arithmetik und größerer Stack. Für "echte" Software war deshalb die Z80-Karte für den Apple II mit 2 MHz so beliebt. Die Beliebtheit der 6502 für die Schachprogrammierung (im Vergleich zur Z80) dürfte drei Gründe haben: Die CPU war lange Zeit richtig preiswert, die Programme hatten in den ersten Jahren noch geringere Größen und in den 80ern waren schnellerer Speicher und 6502 mit bis zu 5 MHz technisch und wirtschaftlich besser als eine Z80 mit 10 MHz oder gar einer der Nachfolger (z.B. HD64180). Und der nächste Schritt war teuer: 68000 mit 8 MHz oder Exoten wie die 6809 (die dann auch nur mit 2 MHz gelaufen wären...). Ich kenne mich mit der 6502 nur sehr wenig aus und kenne daher viele Programmiertricks nicht. Bei der Z80 sind mir die meisten Tricks wohlbekannt und der Fortschritt gegenüber der 8080 ist deutlich (viele Programme haben da einen Faktor 2). Der Faktor von 2,5 zwischen 4 MHz Z80 und 1 MHz 6502 beim Dhrystone-Test dürfte aber zu groß sein. Denn bei einem Schachprogramm kann man einen Teil der Arithmetik mit 8 Bit machen und Compiler sind einfacher für eine Z80 zu programmieren als für die 6502. Wie Du siehst, es gibt Angaben im Bereich zwischen Faktor 1,6 (halte ich für übertrieben, so gut ist die Z80 dann wohl doch nicht) und Faktor 4 (kann nur mit Hardwareunterstützung beim C64 erreicht werden). Den Faktor 2,75 in der Mitte sehe ich da durchaus als guten Schätzwert an. Ich könnte aber bei einem Vergleich nur die Z80 programmieren. ![]() ![]() Betr Graphic usw das denke ich mal spielt keine grosse Rolle beim Collossus 4 zB. Beide wenn das Programm geladen is haben dieses in Ihren RAM. Beim Spectrum wie ich mich errinnere ist die Graphic sogar wesentlich kleiner als beim C64, ich denke mal das war wegen den kleineren RAM 48K gegenueber 64K. Beide denke ich mal kommen von einen Assembler zu Machine Code. Daher denke ich mal das der schachprogramm selber etwa gleich gross ist und mit das bischen sparen bei der Grafik beim Spectrum gibt es bestimmt auch aehnlichen RAM fuer das Rechnen. Daher sollte man sich immer noch fragen wieso zum Schluss Colossus 4 gleich stark bleibt beim Spectrum und beim C64, wenn es beim spielen es sich nur auf reine rechenarbeit handelt? In dein Artikel da wiederspricht ein Spectrum man mit sein Argument ein Commodore man mit sein Argument, beide liebhaber mit bestimmten Bias ![]() Betr. das Buch das haette ich wohl gerne und werde mal schauen in Amazon ob es zum kaufen gibt. Also 2.75 koennte ein guter wert sein aber auch 3.5 ist auch schwer zu wiedersprechen (bei das reine schachrechnen). Ich habe glaube ich auch ein Cyrus II fuer Spectrum und C64. Ich werde das noch mal wiederhohlen als tests wenn ich beide computer mal wieder auf den Tisch habe um zu schauen ob es bei diese was Ausmacht. Viele Gruesse, Nick Geändert von spacious_mind (19.06.2015 um 23:50 Uhr) |
|
||||||||||||
AW: Schachcomputer Prozessor Vergleich
Leider kann man die verschiedenen Programme, die sowohl auf Z80 wie auf 6502 angeboten wurden nicht gut vergleichen. Meist sind die Programme auf dem einen Rechner in einer neueren Version erstellt worden und öfter auch etwas lieblos portiert (klar, das Programm soll vor allem laufen und Geld verdienen). Auch gibt es beim Portieren Randbedingungen, z.B. Speichermenge usw. So kann ein Program auf dem C64 etwas größer sein als auf einem Schneider (Amstrad) CPC, da die Grafik weniger Platz braucht oder einem Spektrum mit 48 KB.
Auch sind die nominellen Frequenzen nicht immer vergleichbar, so hat der Schneider nominell 4 MHz, muss sich aber manchen Takt mit dem Grafikchip teilen und kommt so eher auf nur 3,3 MHz (hängt von den einzelnen Befehlen ab). Die Vorteile für den C64 bei Grafik und Sound spielen für das eigentliche Schachprogramm keine Rolle, aber dies erschwert den Vergleich mit Spielen. |
|
||||||||||||
AW: Re: AW: Schachcomputer Prozessor Vergleich
Daher sollte man sich immer noch fragen wieso zum Schluss Colossus 4 gleich stark bleibt beim Spectrum und beim C64, wenn es beim spielen es sich nur auf reine rechenarbeit handelt?
[...] Also 2.75 koennte ein guter wert sein aber auch 3.5 ist auch schwer zu wiedersprechen (bei das reine schachrechnen). Für Colossus Chess 4 habe sowohl für den C64 wie auch für den Spectrum jeweils 170 Knoten pro Sekunde gefunden. Wenn die von mir genannten 2,75 als Faktor richtig sein sollten, dann wäre Colossus auf dem Spectrum 30% zu langsam. Das könnte man aber damit erklären, dass das Programm zuerst für den C64 geschrieben wurde und dann erst auf andere Rechner und CPUs portiert wurde. Die 30 % "Verlust" in der Geschwindigkeit können halte ich jetzt aber für kein großes Drama. Zum einen wäre ein solches Programm nur 30 Elo schwächer als bei entsprechendem Aufwand und zu anderen konnte man so den Kern vielleicht für alle Rechner mit Z80 verwenden und nur das drumherum musste jeweils weiter angepasst werden. Dann müsste man sich aber nach dem kleinsten gemeinsamen Nenner richten, z.B. bei der Benutzung der Indexregister IX und IY (die auf manchen Rechnern für die Interrupts benutzt wurden) usw. Wenn ich ein Assemblerprogramm für eine CPU auf eine andere umschreiben sollte, dann wäre ich froh mit einem Minus von 30% davon zu kommen. Denn meist sind die Datenstrukturen ja auf die erste CPU massgeschneidert. Falls es irgendwo Infos zu einem Schachprogramm gibt, welches auf einer Z80 entwickelt wurde und dann mit vergleichbaren Versionen auch auf einer 6502 gelaufen ist, das wäre toll. Aber da fällt mir leider nichts ein. |
|
||||||||||||
Re: AW: Re: AW: Schachcomputer Prozessor Vergleich
Dazu wollte ich noch etwas sagen. Der Unterschied zwischen den beiden Schätzwerten beträgt knapp 30%. Das ist ungefähr ein Drittel einer Verdoppelung. Bei 90 Elo Unterschied pro Verdoppelung sind das also ca. 30 Elo.
Für Colossus Chess 4 habe sowohl für den C64 wie auch für den Spectrum jeweils 170 Knoten pro Sekunde gefunden. Wenn die von mir genannten 2,75 als Faktor richtig sein sollten, dann wäre Colossus auf dem Spectrum 30% zu langsam. Das könnte man aber damit erklären, dass das Programm zuerst für den C64 geschrieben wurde und dann erst auf andere Rechner und CPUs portiert wurde. Die 30 % "Verlust" in der Geschwindigkeit können halte ich jetzt aber für kein großes Drama. Zum einen wäre ein solches Programm nur 30 Elo schwächer als bei entsprechendem Aufwand und zu anderen konnte man so den Kern vielleicht für alle Rechner mit Z80 verwenden und nur das drumherum musste jeweils weiter angepasst werden. Dann müsste man sich aber nach dem kleinsten gemeinsamen Nenner richten, z.B. bei der Benutzung der Indexregister IX und IY (die auf manchen Rechnern für die Interrupts benutzt wurden) usw. Wenn ich ein Assemblerprogramm für eine CPU auf eine andere umschreiben sollte, dann wäre ich froh mit einem Minus von 30% davon zu kommen. Denn meist sind die Datenstrukturen ja auf die erste CPU massgeschneidert. Falls es irgendwo Infos zu einem Schachprogramm gibt, welches auf einer Z80 entwickelt wurde und dann mit vergleichbaren Versionen auch auf einer 6502 gelaufen ist, das wäre toll. Aber da fällt mir leider nichts ein. Das macht eigentlich nichts grosses aus, ausser man moechte versuchen hoch zurechnen bei computers zb. Z80 = faktor 3.3 fuer 1 MHz 68,000 = 33 MHz fuer 10 MHz 68000 oder Z80 = factor 4.8 fuer 1 MHz 68,000 = 48 Mhz fuer 10 MHz 68000 Das waere eine differenz von 15 MHz. Gruss Nick |
|
||||||||||||
AW: Schachcomputer Prozessor Vergleich
Ich versuche gerade eine für mich leidlich stimmige Tabelle zusammen zu stellen und bin beim 1802/1806 auf einen Widerspruch gestoßen.
Im Rahmen der WMCCC in Budapest 1983 gibt es die Aussage: Der 68000 ist ein echter 16-Bit-Prozessor und seine Verarbeitungsgeschwindigkeit von 8 MHz würde beim normalen MephistoGrundgerät etwa 21 MHz entsprechen. Das passt auch zum Faktor 4,5 aus dem Artikel zum Mephisto III: Statt der für die 6.1 MHz-Version typischen ca 1.8 Stellungen/s kommt ein 12 MHz Brikett auf ca 3.4 Stellungen/s. Zum Vergleich: ein Mephisto MM I 8 MHz schafft 2,3 Stellungen/s, ein Mephisto III-S Glasgow (68000, 12 MHz) schafft hingegen 8/s ! 4,5 zu 3,6 entspricht 10 MHz zu 8 MHz und 12 MHz mit einem Waitstate sind ungefähr 10 MHz. Aber: Diese Zahlen suggerieren, dass eine 1802 mit 6 MHz ungefähr einer 6502 mit 3 MHz oder einer Z80 mit 8 MHz entsprechen würde und das ist Unsinn. Die meisten Befehle brauchen 16 Takte und sind in ihrer Mächtigkeit durch den Datenbus beschränkt. Wo die 6502 nur 2-7 Takte braucht und die Z80 16-Bit-Operationen durchführen kann muss die 1802 mehrere Befehle mit vielen Takten ausführen. Eine Einstufung der 1802 mit etwa einem Viertel dieser Geschwindigkeit (also 6 MHz 1802 entsprechen grob einer 6502 mit 0,75 MHz oder einer Z80 mit 2 MHz) erscheint mir realistischer. Das würde aber bedeuten, dass bei der Portierung auf den 68000 ein Faktor 4 verloren gegangen sein müsste! Kann das dennoch mit der Aussage "Die Anpaßbarkeit an neue Prozessoren ist mit vertretbarem Aufwand möglich, so daß MEPHISTO 3 gleichzeitig in der jeweils neuesten Programm-Version auf 3 verschiedenen Ziel-Prozessoren läuft: DEC PDP11 (als Test-und Trace-Version), RCA 1806 (als Markt-Normal-Version) und Motorola 68000 (als Spitzen-Version)." passen? Schließlich ist die 68000 deutlich schneller als die Version für die 1802. |
|
||||||||||||
AW: Schachcomputer Prozessor Vergleich
Ich habe mal eine Tabelle angefangen (siehe Anhang), die für einige Prozessoren und Programme die ungefähren Geschwindigkeiten in Knoten/s angibt.
Es liegt aber in der Natur der Sache, dass die Angaben nur sehr ungefähr sein können. Zum einen sind Programme i.A. für eine bestimmte CPU geschrieben, dies ist meist nicht so ohne weiteres auf eine andere CPU zu übertragen, vor allem in Assembler. Außerdem spielt der verfügbare Speicher eine große Rolle, deswegen sind größere Programme (auf neueren CPUs) nur schwer auf kleinere übertragbar. Deswegen wurde teilweise früher mehr gerechnet wo später einfach verbereitete Tabellen genutzt werden konnten. Für einen Überblick sollten die Zahlen aber hilfreich sein, ich habe bei den CPUs gleich mal die für den neuen Millenium Chess Genius mit eingetragen. Wer weitere Zahlen beitragen möchte, bitte gerne, ich aktualisiere dann. |
![]() |
|
|
![]() |
||||
Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
Turnier: Turbostar KSO und Turbo King - Ein Vergleich - | MaximinusThrax | Partien und Turniere / Games and Tournaments | 15 | 10.02.2017 23:33 |
Turnier: Schachcomputer vergleich zu alte Computerschach Spiele | spacious_mind | Oldie & Retro Schachprogramme / Chess Programs | 18 | 15.08.2008 22:42 |
Turnier: Fidelity Sensory 9 - Vergleich | Wolfgang2 | Partien und Turniere / Games and Tournaments | 5 | 09.02.2008 23:39 |