Autor Thema: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede  (Gelesen 419 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline czietz

  • Benutzer
  • Beiträge: 2.317
Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« am: So 05.01.2020, 13:45:47 »
Lasst uns ein kleines Sonntagsrätsel spielen.  :)

Ich habe kürzlich herausgefunden, dass die ersten 16 MiB TT-RAM viel schneller sein können als die zweiten 16 MiB (in meinem TT mit insgesamt 32 MiB) -- und auch warum. Details und Testprogramm hier:
http://atari-forum.com/viewtopic.php?f=16&t=38138&p=390410

Was meint Ihr, ist der Grund?
« Letzte Änderung: So 05.01.2020, 13:47:40 von czietz »

Offline Gaga

  • Benutzer
  • Beiträge: 2.161
  • Wer nicht nachfragt, bekommt auch keine Antwort!
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #1 am: So 05.01.2020, 20:11:51 »
Vorweg: ich weiß es nicht.

Der Zugriff ab 16MB ist ca. 3,6 mal langsamer als bei den ersten 16 MB. So deute ich Dein Zahlenwerk.

Kann es sein, dass die MMU ab 16MB Waitstates oder Refreshes macht?
Thunder - Storm - Lightning VME/ST

Offline mfro

  • Benutzer
  • Beiträge: 1.394
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #2 am: So 05.01.2020, 20:51:39 »
Cache ist an?
Wird aber ausgetrickst, weil die Zugriffe nicht aufsteigend sind?
And remember: Beethoven wrote his first symphony in C

Offline czietz

  • Benutzer
  • Beiträge: 2.317
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #3 am: So 05.01.2020, 21:25:07 »
Ja, Cache ist eingeschaltet; der Datencache nützt aber aufgrund der Reihenfolge der Zugriffe nichts, wie Du auch schon gesehen hast. (Nur der I-Cache hilft bei der Codeausführung, weil die Schleife vermutlich komplett hinein passt.)

Offline czietz

  • Benutzer
  • Beiträge: 2.317

Offline mfro

  • Benutzer
  • Beiträge: 1.394
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #5 am: Mo 06.01.2020, 10:17:17 »
Ahja. Die MMU muß die Zugriffe auf die "geraden" 16-MB-Pages auf den MMU-Tree leiten, weil sie sonst keinen Supervisor-Speicherschutz in den untersten 16 MB (die sie "aufdröseln" muss) realisieren kann.

Logisch, eigentlich ;)

And remember: Beethoven wrote his first symphony in C

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 713
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #6 am: Mo 06.01.2020, 10:20:12 »
Mit Speicherschutz hat das nix zu tun. Die TTRs werden nur benutzt, um die I/O Addressen sowohl unter $FFFFxxxx als auch unter $00FFxxxx ansprechen zu können.

Offline eto

  • Benutzer
  • Beiträge: 29
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #7 am: Mo 06.01.2020, 10:51:26 »
Was ich nicht ansatzweise verstanden habe ist, warum es für den Speicherbereich 32-48MB wieder schnell ist und insgesamt alle 16MB wechselt.

Offline mfro

  • Benutzer
  • Beiträge: 1.394
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #8 am: Mo 06.01.2020, 11:13:21 »
Mit Speicherschutz hat das nix zu tun. Die TTRs werden nur benutzt, um die I/O Addressen sowohl unter $FFFFxxxx als auch unter $00FFxxxx ansprechen zu können.

Das stimmt. Die MMU-Tables setzen nur das Mapping und ob gecached wird oder nicht.

Nichtsdestotrotz sorgt das Ummappen der I/O-Areas natürlich auch für deren SV-Protection.
And remember: Beethoven wrote his first symphony in C

Offline czietz

  • Benutzer
  • Beiträge: 2.317
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #9 am: Mo 06.01.2020, 11:42:13 »
Was ich nicht ansatzweise verstanden habe ist, warum es für den Speicherbereich 32-48MB wieder schnell ist und insgesamt alle 16MB wechselt.

Weil das Transparent Translation Register alle Zugriffe mit Adressbit 24 = 1 an den Translation Tables vorbei leitet.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 713
Re: Sonntagsrätsel: TT-RAM-Geschwindigkeitsunterschiede
« Antwort #10 am: Mo 06.01.2020, 13:56:16 »
Nichtsdestotrotz sorgt das Ummappen der I/O-Areas natürlich auch für deren SV-Protection.

Nein, auch nicht. Die untersten 3Bits in den TTRs sind in TOS gesetzt, damit wird der Function-Code (ob SV oder nicht) ignoriert.