Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Technische Fragen und Probleme / Tuning (https://www.schachcomputer.info/forum/forumdisplay.php?f=12)
-   -   Frage: 16/32 Bit: Woher kommt der Geschwindigkeitsvorteil? (https://www.schachcomputer.info/forum/showthread.php?t=4181)

Supergrobi 06.03.2012 13:18

16/32 Bit: Woher kommt der Geschwindigkeitsvorteil?
 
Hallo allerseits,

ich habe mich kürzlich gefragt, wie es eigentlich kommt, daß z.B. der Roma 68020 doppelt so schnell ist wie der Roma 68000.

Ich weiß, daß der 68020 in einem Zyklus 32 Bit lesen kann, aber in einem Schachprogramm (zumindest wenn es keine Hashtables einsetzt) kommt so etwas doch praktisch gar nicht vor? :raffnix:

Die klassische 10x12-Brettdarstellung kann ich komplett mit 8-Bit-Daten programmieren (ein Array von 120 Elementen signed char), für Bewertungskriterien brauche ich vielleicht mal 16 Bit, wenn mir 8 Bit zu grob sind.

Wie kann ein 32-Bit-System bei Verwendung solcher Daten seinen Vorteil ausspielen?

Das einzige, was mir einfällt, wären Bitboards. Wenn die interne Brettdarstellung über Bitboards läuft, würde man mit einem 32bit-System im Vorteil sein. Aber a) wäre das auf einem 68000 gemessen an der 10x12-Darstellung nicht viel zu ineffizient und b) wurden damals überhaupt schon Bitboards eingesetzt?

Oder bin ich komplett auf dem falschen Dampfer?

Bin für jeden Hinweis dankbar! :)

Viele Grüße,
Dirk

Solwac 06.03.2012 16:20

AW: 16/32 Bit: Woher kommt der Geschwindigkeitsvorteil?
 
Du hast recht, es dürfte nur sehr wenig Stellen in einem klassischen Programm (also ohne Bitboards) geben, bei denen 32 Bit einen direkten Vorteil bringen.

Wenn jetzt aber der 68020 bei gleichem Takt ungefähr doppelt so schnell wie ein 68000 ist und dies auch noch bei Programmen ohne besondere Optimierung funktioniert, dann steckt da was anderes dahinter:
  • Der 68020 ist jünger, der Microcode konnte so noch etwas optimiert werden. Ein logisch identischer Befehl wird so im Schnitt etwas schneller abgearbeitet. Ganz extrem bei Multiplikation und Division.
  • Der 68020 hat einen kleinen Cache, wodurch kleine Schleifen ohne Speicherzugriffe abgearbeitet werden. Der 68000 war hier immer von der Geschwindigkeit des Speichers abhängig.
  • Ein weiterer Effekt des Cachings ist die teilweise Parallelisierung von Befehlen (Pipelining), d.h. mit dem nächsten Befehl kann schon begonnen werden bevor der aktuelle beendet ist.
  • Der Speicher ist über einen doppelt so breiten Datenbus angeschlossen. Dadurch sind Befehlsblöcke mit großem Datendurchsatz (z.B. das Verschieben oder Sortieren von Daten im Speicher) schneller als beim 68000.

Die zusätzlichen Befehle des 68020 sind dagegen kaum von Nutzen. Zum einen verhindern sie die einfache Übertragung auf den preiswerteren 68000 und zum anderen sind sie nur schwer zu programmieren und debuggen. Sie sind einfach zu komplex geworden.

Matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
©Schachcomputer.info