Einzelnen Beitrag anzeigen
  #8  
Alt 12.11.2017, 14:47
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
AW: Saitek Simultano - eine Rechenaufgabe

 Zitat von DarkStar Beitrag anzeigen
Der 65C02 hat einen Adressraum von 64 KByte (65536 Bytes). Das ROM ist lt. Angabe 64 KBytes groß.

1. Frage: wo liegt dann der 8 KByte RAM Bereich?
Das könnte man mit bank switching machen. Der Commodore 128 muß das ähnlich gelöst haben, um mit dem 6502 128k RAM adressieren zu können.

Eine denkbare Aufteilung wäre etwa, das RAM nach unten zu legen, dann den Code, und z.B. die letzten 8K des Adreßraumes switchbar über den ROM-Teil mit dem Eröffnungsbuch zu legen. Das wäre dann im Zugriff zwar langsam, wäre aber nur zum Lookup nötig und würde die eigentliche Suche nicht ausbremsen.

Zitieren:
2. Frage: wieviel Speicherplatz würdet ihr dafür benötigen?
Wenn ich die Cache-Indices weglasse, 25 Bytes. 4 davon für die Länge des Eröffnungsbuches, was man beim 6502 aber auch mit einem uint16_t machen könnte, dann wären es noch 23 Bytes.

Allerdings ist mein Format nicht besonders speichersparend, weil beim Cortex-M4 mehr als genug ROM vorhanden ist. Für 22283 unterschiedliche Züge in 12563 unterschiedlichen Positionen mit 256 Cache-Indices werden 108425 Bytes benötigt. Die "rohe" Anzahl der Züge liegt übrigens bei 128258, also vor der Bereinigung um Zugumstellungen.

Bei der Skalierung ergeben sich damit 4.87 Bytes pro einzigartigem Zug, bzw. 0.86 Bytes pro Zug in "kreativer" Zählweise. Wenn ich die Positionen statt mit einer CRC-32 und einer CRC-8 nur mit CRC-16 und CRC-8 machen würde, wären das 2 Bytes pro Position weniger, was 25k sparen würde, und ohne Cache-Indices (1k weniger), dann wären es 3.7 bzw. 0.64 Bytes pro Zug.

Mit letzterem wäre man bei 100.000 Zügen vor Zugumstellung dann bei 64k, das ist die richtige Größenordnung. Nimmt man nun noch an, daß das Verhältnis aus Roh-Zählweise zu bereinigter Zählweise beim Simultano deutlich höher ist, weil das Buch auf Tiefe und nicht wie bei mir auf Breite zielt, dann wären auch 32k Buch durchaus machbar.

Geändert von Rasmus (12.11.2017 um 15:03 Uhr)
Mit Zitat antworten