Thomas W. schrieb:
> Das Problem ist halt, der Framebuffer muß kontinuierlich gelesen werden.
> Im Betrieb auch oft beschrieben.
> Das kostet Bandbreite und das bremst die Nutzung des Restspeicher.
Genau das ist das Problem an der Sache, als VRAM ist es sehr einfach, da
kann man auch gut mit einem 8er Burst arbeiten und in einen Fifo
puffern. Da ich den RAM einfachheitshalber mit Pixelclock laufen lassen
will (147MHz vs 166MHz, macht da den Braten auch nicht fett) bekomme ich
so (nach dem initialen Overhead) ja 2 Pixel pro Takt und hab
dementsprechend schnell den Fifo befüllt, danach hab ich dann genug Zeit
für Schreiboperationen ins VRAM und das Refreshen. Eine Zeile beim
Bildaufbau hat 2256 Pixel, davon 1680 sichbar und 576 im Blanking.
Während des sichtbaren Bereiches kann ich durch Nutzung aller 4 Bänke
rechnerisch knapp eine komplette Zeile lesen und auch in einer anderen
Row neu schreiben, dazu kommt noch der Autorefresh und es bleiben mir
über 500 Takte für Anderes im Blanking jeder Zeile übrig. Alternativ
könnte ich auch das komplette Refreshen (4096 * 72ns = ~295µs) ins
vertikale Blanking (~567µs) legen.
> Warum nicht ein eigenes SRAM als Framebuffer verwenden?
Die Boards sind fertig und keine Neuentwicklung, geht nur um die
Weiterverwendung von sehr billigem altem Zeug. Ansonsten hätte ich nicht
freiwillig DDR Speicher für den Framebuffer genommen.
> Der Controller kann ja dann "nach oben" wie ein Speicher aussehen.
Das ist gar nicht erforderlich, es ging mir nur darum nicht 2/3 des
Speichers sinnlos zu verschwenden. Für das was mir spontan damit
einfällt, sollte der vorhandene BRAM als Systemspeicher erstmal
ausreichen.
Strubi schrieb:
> In den Blankzeiten kann man die Bandbreite gut für Cache-Bursts ins
> Instruction-Cache verwenden, ist halt sehr Architektur-spezifisch und
> bei komplexen OS ne Bremse.
> Der Logik-Aufwand wäre da nicht immens.
Stimmt, die Idee da noch einen Cache dazwischen zu setzen dürfte es
deutlich entschärfen. Müsste dann eigentlich nur dafür sorgen das
Sprünge innerhalb der entsprechenden Page bleiben oder den Speicher nur
für Daten verwenden um das Problem zu umgehen.
Danke.