Quote:
Originariamente inviato da bluled85
Prova andare in gestione periferiche, selezionare la tua scheda video, andare su risorse e leggere le voci intervallo di memoria...
Uno degli intervalli che mi appaiono è C0000000h CFFFFFFFh che guarda caso è proprio 256Mb (come la mia scheda). Altre voci servono per scritture diverse.
Ad esempio il segmento da 64Kb o 128kb posto all'indirizzo A0000h serve per la scriturra a video con lo standard VESA utilizzando un banked access. (MS DOS che nostalgia). Ma anche con il VESA puoi in alternativa usare direttamente il
C0000000h (valore che probabilmente tu avrai diverso).
Inoltre tieni presente che la memoria non viene mai utilizzata con un accesso diretto, ma in mezzo ci sono segmentazione e paginazione (gestite in buona parte direttamente dal processore, ed in secondo luogo dal sistema operativo).
Come pensi si possa accedere alla memoria della scheda senza un indirizzamento per scrivere sul frame-buffer?
In linea teorica con un sistema a 32-bit può indirizzare più di 4Gb utilizzando uno speciale registro , ma in pratica questo non viene fatto, e quindi la V-ram deve essere allocata sempre in quei famosi 4 Gb.
Quindi chi ha postato prima di te, non si meritava un 
|
I dettagli implementativi non li conosco, ma facendo un discorso puramente pratico ti confermo che i miei 4 gb di ram sono completamente indicizzabili, e la mia 8800 gts 640 pure.
Non e' detto che la vram (e il termine non sarebbe neppure corretto, perche' riferito a ram specifiche ormai obsolete), debba essere indicizzata dallo stesso mmu che "pagina" e "segmenta" la ram di sistema... Non avrebbe senso.
Da wiki:
Such operation is described in the paper "All points addressible raster display memory" by R. Matick, D. Ling, S. Gupta, and F. Dill, IBM Journal of R&D, Vol 28, No. 4, July 1984, pp379-393. To use the video port, the controller first uses the DRAM port to select the row of the memory array that is to be displayed. The VRAM then copies that entire row to an internal row-buffer which is a shift-register. The controller can then continue to use the DRAM port for drawing objects on the display. Meanwhile, the controller feeds a clock called the shift clock (SCLK) to the VRAM's video port. Each SCLK pulse causes the VRAM to deliver the next item of data, in strict address order, from the shift-register to the video port. For simplicity, the graphics adapter is usually designed so that the contents of a row, and therefore the contents of the shift-register, corresponds to a complete horizontal line on the display.
Non e' molto attinente (e' relativo alla videoram in sistemi dell' 84), ma credo che in "grande" il controller della scheda video si faccia carico, con una sorta di memory management unit dedicato, di gestirsi la sua ram in maniera indipendente.