|
| | cgfm2 said: |
but assuming the VRAMs are two separate chips (A,B), it sounds like you can 'disconnect' one from the display refresh logic and give the CPU unlimited access to it without the VDP2 have priority when it comes to sharing cycles.
|
I recall it is similar to this with the VDP1 double frame buffer: one is displayed, the other one can be accessed via cpu. BTW: cpu access to vdp1 VRAM while VDP1 is drawing, causes the VDP1 to pause it's operation.
| | cgfm2 said: |
Has anyone tried this and checked what kind of performance gains you can get?
|
Well, I've been trying to investigate this topic, too. Unfortunately, the results are not as clear as I'd like them too. I made a little "benchmark" program to meassure RAM access time for differentmemory regions, different word sizes, reads/writes and so on. Oh, you can set different cycle patterns for cpu, too.
I don't know for what reason (method of measuring time, or the benchmark functions itself?)
From my website http://www.rockin-b.de/saturn-benchmarkram.html:...
| |
This demo uses the free running timer (FRT) of the CPU to measure memory transfer time. You can run it directly with the predefined benchmarks, however you will most likely want to experiment and add new benchmark settings and recompile.
Though the feature list looks nice, the benchmark results are in some cases not really useful yet. But after I declared some variables as volatile, the results are much more like expected and give a feeling which area is fast and how big the difference is between byte and word access..
|
Features:
- byte, word, long word access
- high work RAM, low work RAM, VDP1 VRAM, VDP2 VRAM, sound RAM (read only), cart RAM (auto recognize 1MB + 4MB)
- support any address increment
- different time output formats
- "unlimited" number of different benchmarks
- menu to select all options
|