Re: windows 32 bit i 4 GB RAM

Autor: __Maciek <i80c586_at_cyberspace.org>
Data: Wed 03 Dec 2008 - 20:36:42 MET
Message-ID: <bdmdj49mg9fd4j114kukb3g7phuhbljroa@4ax.com>
Content-Type: text/plain; charset=ISO-8859-2

Wed, 03 Dec 2008 17:15:41 +0100 BQB <adres@anty.spamowy.com.invalid>
napisał:

>Wyjaśnij, w jaki sposób procesor lub chipset może coś zaadresować w
>pamięci graficznej? To GPU decyduje o adresacji. W skrócie GPU "mówi" do
>chipsetu weź te dane umieść w pamięci, chipset do procesora, jak
>umieścić i gdzie.

To byłaby bardzo wysokopoziomowa komunikacja... :-D

>Potem procesor do chipsetu - daj dane do GPU niech z
>nimi coś zrobi, GPU bierze, wrzuca sobie do GRAM obrabia i przesyła
>znów. Na dobrą sprawę ani CPU ani chipset nie wiedzą ile RAM ma do
>dyspozycji GPU, to GPU tym zarządza.

Bajki opowiadasz, nie masz pojęcia jak funkcjonuje system
mikroprocesorowy, a szczególności PC.

Otworzyłem właśnie menedżer urządzeń i patrzę na zasoby pamięci mojej
karty graficznej (Intel 82865G - wbudowana w płytę główną), są takie:

0xF0000000 - 0xF7FFFFFF - jest to 0x07FFFFFF bajtów, a więc 128MB
                        - jest to główna pamięć karty graficznej

0xFBE80000 - 0xFBEFFFFF - jest to 0x0007FFFF bajtów, a więc 512KB
                        - w tej przestrzeni jest widoczny bios karty

0x000A0000 - 0x000BFFFF - jest to 0x0001FFFF bajtów, a więc 128KB
                        - w tej przestrzeni mieści się bufor używany w
                          trybie tekstowym

Zakresy te bezpośrednio odwzorowują pamięć graficzną na szynę adresową
komputera. Jeżeli system chce wyświetlić jakiś obrazek to zapisuje te
dane po prostu pod odpowiedni adres i już. Jeżeli zapisany obszar
znajduje się w zakresie z którego akurat karta wyświetla - obrazek
pojawi się na ekranie. Zwykle stosuje się jednak podwójne buforowanie
o czym dalej.

Nie wiem jak wygląda przesyłanie danych wektorowych do karty (wtedy
gdy to karta ma go renderować), ale na 99% tak że w przestrzeni
adresowej zajętej przez pamięć karty alokuje się odpowiedni bufor na
takie dane, konfiguruje kartę odpowiednio i przesyła dane wektorowe do
tego buforu. GPU odczytuje te dane, renderuje w/g nich obrazek i
umieszcza go (rysuje w caasie renderingu) w buforze obrazu
(znajdującym się również w przestrzeni adresowej karty, a inna część
GPU na karcie, pobiera te dane stamtąd kolejno i podobnie jak w
poprzednim przykładzie, podaje na wyjściowe przetworniki C/A lub
bezpośrednio na wyjście monitorowe (w przypadku monitora z interfejsem
cyfrowym)).

Oczywiście normalnie stosuje się stronicowanie pamięci, dubluje bufory
obrazu i rysuje w tym buforze który akurat nie jest wyświetlany, po
czym, gdy obrazek jest gotowy, nakazuje karcie wyświetlanie z nowo
wypełnionego bufora, a następną klatkę rysuje się w drugim,
nieodczytywanym w tej chwili przez kartę buforze.
(http://en.wikipedia.org/wiki/Double_buffering#Double_Buffering_in_Computer_Graphics)

tak czy inaczej, pamięć graficzna JEST mapowana bezpośrednio na szynę
komputera i byłoby raczej dziwne gdyby nie była.

-- 
RUN"
Press PLAY then any key:
Loading WINDOWS block 45829
read error b
Received on Wed Dec 3 20:50:03 2008

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Wed 03 Dec 2008 - 20:51:02 MET