von HiassofT » Sa 26. Dez 2015, 13:53
Hi!
tfhh hat geschrieben:Wow. 140 Euro ist schon nicht wenig. Da stellt sich mir die Frage... lohnt da nicht eher ein MiST oder das DE1 Board mit dem foft-XL-Core?
Ich vermute mal (wer weiß es genau?), daß man beim MiST als auch DE1 Board entweder "full speed" oder 100% compatible einstellen kann.
Ja, da gibt's eine Turbo Einstellung, die hab' ich selber aber noch nicht ausprobiert (hatte bisher keinen Bedarf, mein Haupt-Interesse ist 100% Bus-Kompatibilität mit dem FPGA Core zu erreichen).
Die Sache mit dem Turbo (egal ob im FPGA Core oder als Erweiterung für den Atari) ist auch alles andere als trivial.
Zum einen kommts drauf an was für RAM verwendet wird: im DE1 Core hatte foft zuerst das SRAM verwendet, das ist sehr flott (ich glaub es waren 20-50MHz) möglich, aber es ist relativ klein (zu klein für RAM-Erweiterung + OS + Cartridges). Die späteren Versionen verwenden das SDRAM, das ist grösser hat aber prinzipbedingt variable Zugriffszeiten. Wenn ich mich richtig erinnere, verwenden die aktuellen Cores für die meisten Plattformen SDRAM.
Zum anderen kommts drauf an, wie viel Kompatibilität zu externen Geräten (Carts, PBI etc) man haben möchte. Der Atari "Bus" ist so ausgelegt, dass Carts (per RD4/5), PBI Geräte (ROM per MPD), externe Speichererweiterungen (RAM per CASINH) den internen Speicher deaktivieren können. Diese Bereiche können dann natürlich nicht per Turbo angesprochen werden, da am Beginn eines (Turbo-)Zyklus noch nicht klar ist, ob auf den internen (schnellen) oder externen (1.79MHz "langsamen") Speicher zugegriffen wird - RDx, MPD etc müssen nicht unbedingt vor oder zu Beginn des Zyklus gültig sein.
Um das in den Griff zu bekommen kann man zB Bereiche definieren, die niemals extern gemappt werden können - zB das RAM - die können dann immer mit voller (Turbo-) Geschwindigkeit angesprochen werden.
Ganz schlimm wird's aber wenn man auch den Refresh-Trick des TurboFreezers unterstützen möchte, der kann ja den gesamten Speicher im Atari ausblenden - das funktioniert also nur in Standard-Geschwindigkeit.
Dann gibt's natürlich noch andere Optimierungsmöglichkeiten. Wenn man schon schnellen Speicher und die CPU auf einem separaten Bus hat kann man zB auch den Antic DMA so implementieren, dass er die CPU nicht für einen ganzen 1.79MHz Zyklus anhält sondern nur für einen Turbo-Zyklus, aber auch ohne diese Optimierung ist die ganze Sache schon kompliziert genug.
so long,
Hias