background image

Grafika komputerowa  - ćwicz. 3 
Temat: Procesory graficzne 

 

1. Sterowniki graficzne:  
    Funkcje:  
    - odczyt zawartości pamięci graficznej i generowanie szeregowego  
       strumienia informacji obrazowej do urządzenia zobrazowania (pikseli); 
    -  generacja sygnałów synchronizacji H, V i Blank. 

Sterownik graficzny firmy Motorola: MC6845 

 
2. Akceleratory graficzne:  
    Funkcje:  
    - wykonywanie specjalizowanych zadań graficznych: cieniowanie,  
       wypełnianie obszarów, triangulacja, depth cueing, (efekt głębi  
       przestrzennej), antyaliasing, operacje HLHSR itp.  
    - funkcje sterownika graficznego.   
  

background image

3. Koprocesory graficzne:   
    Funkcje:  
    - procesor graficzny – GP (Graphics Processor) 
      Wykonuje rozkazy graficzne z dostępnej listy rozkazów graficznych  
     (rozkazy sterujące, rozkazy kreślenia, rozkazy transmisji blokowych),  
      składuje wytworzone mapy bitowe w pamięci dostępnej przez procesor 
      obrazu 
     - procesor obrazu – DP (Display Processor) 

 

       Generuje sygnały synchronizacji i szeregowy strumień informacji 
       obrazowej, jednocześnie może wyświetlać wiele okien na ekranie z  
       różnych obszarów map bitowych pamięci graficznej. 
     - jednostka sterująca interfejsem – BIU (Bus Interface Unit) 

.  

     Steruje wszelką komunikacją pomiędzy koprocesorem a zewnętrznym  
     procesorem i pamięcią graficzną. Zawiera zintegrowany sterownik  
     pamięci DRAM/VRAM umożliwiający realizację różnych trybów dostępu 

        przy transmisjach blokowych.  Wykorzystywany przez  DP i GP w 

     operacjach dostępu do map bitowych w pamięci graficznej. 

    Koprocesory graficzne firmy Intel: I82720, I82786. 

 

 

background image

 

4. Procesory graficzne:   

Funkcje: 

   - funkcje koprocesora graficznego;   

 - jednostka obliczeniowa wykonująca rozkazy z listy rozkazów 
   uniwersalnych (rozkazy arytmetyczne, logiczne, warunki, skoki itp.)   

   Procesory firmy Teksas Instruments: 

 

  - TMS34010 – 16-bitowy procesor graficzny 

 

  - TMS34020 – 32-bitowy procesor graficzny współpracujący  
                           z koprocesorem zmiennoprzecinkowym TMS34082 

 

Procesory firmy Intel: 

 

 - I860 – 64-bitowy procesor graficzny z 2 jednostkami obliczeń 
   stałopozycyjnych i zmiennoprzecinkowych, z układem MERGE 
   (mnożenie macierzy 4x4) 

 

background image

5. Systemy wieloprocesorowe z przetwarzaniem potokowym:   

Chipsety GeForce: Vertex Shader, Pixel Shader, Unified Shader   
- przetwarzanie potokowe: potok – strumień informacji opisujących   
  pojedynczą  klatkę animacji; 
- obliczenia na danych opisujących wierzchołki (współrzędne, wektory 
   normalne) wykonywane przez układ Vertex Shader;  
- obliczenia na wartościach pikselowych (składowe R, G, B, A) 
  wykonywane przez układ Pixel Shader; 

   - obliczenia implementowane w postaci programów niskopoziomowych 

   składających się od kilku do kilkudziesięciu rozkazów. 

 
 

   

background image

Procesor obrazu – DP (Display Processor)  generuje sygnały 
synchronizacji i szeregowy strumień informacji obrazowej 

Sygnały synchronizacji urządzeń rastrowych:

  

- synchronizacja pozioma (ang. Horizontal
- synchronizacja pionowa (ang. Vertical
- sygnał wygaszania:  Blank (HBlank, VBlank) 

 

background image

 

Parametry sygnałów synchronizacji 

Synchronizacja pozioma 

1.  Horizontal Line Rate:  

HFreq  

[kHz] 

2.  Horizontal Synchronization Width: 

HSync 

[µs] 

3.  Horizontal Back: 

HBack 

[µs] 

4.  Horizontal Front: 

HFront 

[µs] 

 

HFront    HSync    HBack

  

 

                                       HActive  (K pixeli)  

                                                                

 

 

 

    HBlank 

 

 

 

 

1/HFreq 

 

background image

Synchronizacja pionowa 

1.  Vertical Line Rate: 

VFreq 

[Hz] 

2.  Vertical Synchronization Width: 

VSync 

[ms] 

3.  Vertical Back: 

VBack 

[ms] 

4.  Vertical Front: 

VFront 

[ms] 

 

VFront    VSync    VBack  

 

                                     VActive (L  linii video)  

                                                                

 

 

 

    VBlank 

 

 

 

 

1/VFreq

 

background image

Przykład 1. 

Sprawdzić  czy  monitor  o  dopuszczalnej  częstotliwości  odchylania  poziomego 
HFreq=33 kHz może współpracować z kartą graficzną SVGA w trybie rozdzielczości 
800x600 z częstotliwością odświeżania VFreq=60Hz.  

Wymagania techniczne monitora:  

min. czas HBlank=5µs 

 

min. czas VBlank=0.67ms 

 

VFront    VSync    VBack  

 

                                  600  linii video (VActive)  

                                                                

 

 

 

    VBlank 

 

 

 

 

1/VFreq

 

1.  VFreq=60Hz 

VActive =1/VFreq - VBlank= 1/60Hz-0.67ms=16.67-0.67=16.0ms 

HFreq=1/(VActive/L)=1/(16.0ms/600)=1/26.67

µ

s=37.5kHz 

 

 

 

 

2.  VFreq=50Hz 

VActive =1/VFreq- VBlank= 1/50Hz-067ms=20.0-0.67=19.33ms 

HFreq=1/(VActive/L)=1/(19.330ms/600)=1/32.22

µ

s=31.0kHz 

 

 

 

 

background image

 

Przykład 2. 

Wyznaczyć pasmo przenoszenia sygnału video (VBW) dla karty j.w. dla: 

 

L=600 linii 

 

K=800 pixeli 

 

HFreq=37.5KHz 

 VBW – Video Band Width 

 

HFront    HSync    HBack  

 

                                      HActive (800 pixeli)  

                                                                

 

 

 

    HBlank 

 

 

 

 

1/HFreq 

 

HActive=1/HFreq-HBlank=26.67

µ

s-5

µ

s=21.67

µ

VBW=1(HActive/K)=1/(21.67

µ

s/800)=1/27.09ns=36.9MHz 

 

background image

Zadanie 1: 

Obraz  wyświetlany  na  monitorze  w  sposób  kolejnoliniowy  odświeżany  jest  z 
częstotliwością 

VFreq=60Hz

.  Zakładając,  że  układy  sterujące  monitora  wymagają 

minimalnych  czasów  wygaszania 

HBlank=2µs

  i 

VBlank=2ms

  wyznaczyć 

częstotliwość  sygnału  synchronizacji  poziomej 

HFreq

  i  szerokość  pasma  sygnału 

video VBW dla kart graficznych generujących obraz w standardzie: 

  Hercules 

720x348 

  EGA 

640x350 

  VGA 

640x480 

  SVGA 

800x600 

  * 

1024x768 

  TIGA                        1280x1024 

  *                               1600x1280             

 
 

Lp. 

Standard 

KxL 

HFreq [kHz]  VBW [MHz] 

1. 

Hercules 

720x348 

 

 

2. 

EGA 

640x350 

 

 

3. 

VGA 

640x480 

 

 

4. 

SVGA 

800x600 

 

 

5. 

 

1024x768 

 

 

6. 

TIGA 

1280x1024 

 

 

7. 

 

1600x1280 

 

 

 

background image

Zadanie 2: 

Wyznaczyć częstotliwość sygnału synchronizacji poziomej 

HFreq

 i szerokość pasma 

sygnału video VBW dla obrazu generowanego z przeplotem o rozdzielczości: 

  800x600 

  1024x768 

  1280x1024 

  1600x1280 

Zakładamy (jak w Zadaniu 1), że układy sterujące monitora wymagają minimalnych

 

czasów  wygaszania

 

HBlank

=2µs

 

i

 

VBlank=2ms

 

oraz  odświeżanie  z 

częstotliwością

 

VFreq=60Hz

  

 
 

Lp. 

Standard 

KxL 

HFreq [kHz]  VBW [MHz] 

1. 

SVGA 

800x600 

 

 

2. 

 

1024x768 

 

 

3. 

TIGA 

1280x1024 

 

 

4. 

 

1600x1280 

 

 

background image

Przebiegi synchronizacji pionowej i poziomej w trybie z przeplotem 

 

VFront    VSync    VBack  

 

                                  VActive L/2 linii video  

                                                                

 

 

 

    VBlank 

 

 

 

 

1/VFreq 

 

          HBlank

p

 

 

HFront  HSync   HBack  HSync    HBack 

 

                                      HActive (K pixeli)  

                                                                

 

 

  HBlank 

 

 

                              

1/HFreq 

 

 

Założenia: (

tak się przyjmuje

): 

HFront = HBack

 

 

10 

÷

20 % 

HBlank

  

dla 20%:HBlank : 

HFront = HBack

 

= 

0,2*

HBlank  

  

 

 HBlank

p

 = 

1,8*

HBlank 

 

Rozwiązanie:   

VFreq=60Hz 

1.  VActive = 1/VFreq - VBlank= 1/60Hz-2ms=16.67-2=14,67ms 
2.  HFreq=1/(VActive/(L/2))=1/(14,67ms/300)=1/0,0489ms=20,45kHz 
3.  HBlank

p

 = 1,8*HBlank= 1,8*2

µ

s =3.6

µ

4.  HActive = 1/HFreq - HBlank

p

 = 1/(20,45kHz)- 3.6

µ

s=48,9-3,6=45,3

 µ

5.  VBW=1/( HActive/K)=1/(45,3

µ

s/800)=17,66 MHz 

background image

Zadanie 3: 

Wyznaczyć  maksymalną  częstotliwość  odświeżania  obrazu  dla  karty  graficznej 
generującej obraz: 

a)  bez przeplotu 
b)  z przeplotem 

o  rozdzielczości  1600x1280  taktowanej  zegarem  VCLK=100MHz  zakładając,  że 
minimalne  czasy  wygaszania  pionowego  i  poziomego  wynoszą  odpowiednio 
HBlank=1µs i VBlank=1ms  
 

 

 

background image

Rozwiązanie: 

 

******************Synchronizacja pozioma*************************************************** 
 

HActive = K * 1/VCLK = 1600* 1/100 MHz = 16

µ

a) 

1/

 HFreq = HActive + HBlank = 16

µ

s + 1

µ

s = 17

µ

b)  1/

 HFreq = HActive + HBlank

p

 = 16

µ

s + 1,8

µ

s = 17,8

µ

 

HBlank

p

 = 1,8*HBlank 

 
 
 
 
******************Synchronizacja pionowa*************************************************** 
 

a) VActive = L * 

1/

 HFreq = 1280* 17

µ

s = 21,76 ms 

b) VActive = L/2 * 

1/

 HFreq = 640* 17,8

µ

s = 11,39 ms 

 

a) 1/ VFreq = VActive + VBlank = 21,76 ms + 1 ms = 22,76 ms 
b) 1/ VFreq = VActive + VBlank = 11,39 ms + 1 ms = 12,39 ms 

 

a) VFreq = 1/ 22,76 ms = 43,9 Hz 
b) VFreq = 1/ 12,39 ms = 80,7 Hz 

Uwagi: 

a)

  zbyt mała częstotliwość VFreq w trybie bez przeplotu /migotanie 

obrazu/ 

 

 
 

 

background image

Procesor TMS34010 –  blok współpracy z monitorem  

 

 

Rejestry środowiskowe bloku współpracy z monitorem TMS34010 

 

 

 

 

Przebiegi sygnałów w czasie wyświetlania jednej linii obrazu 

 

 

 

background image

Rejestry środowiskowe bloku współpracy z monitorem TMS34010 

 

 

 
 

 

Przebiegi sygnałów w czasie wyświetlania jednego obrazu 

 

background image

 

Wyświetlanie obrazu  - charakterystyka czasowa 

 

 

 

background image

Zadanie 4   

Wyznaczyć wartości rejestrów środowiskowych bloku współpracy z monitorem procesora 
graficznego  TMS34010  określających  parametry  czasowe  sygnałów  synchronizacji  dla 
obrazu generowanego w trybie:   
- rozdzielczość KxL=1152x870    
- częstotliwość odświeżania VFreq=75 Hz 

 

- pasmo przenoszenia VBW=100 MHz.  - {VCLK} 

 

Zweryfikować parametry czasowe obliczone z rzeczywistymi. 

 

 

 

 
 

 

 

 
 
 

 

Rejestry 

Macintosh 

1152x870 

HESYNC 

 

HEBLNK 

 

HSBLNK 

 

HTOTAL 

 

VESYNC 

 

VEBLNK 

 

VSBLNK 

 

VTOTAL 

 

 

 

Macintosh 

1152x870 

HFreq [kHz] 

 

A [ µs ]  

12.98 

B [ µs ] 

1.0 

C [ µs ] 

0.23 

D [ µs ] 

11.52 

E [ µs ] 

0.23 

VFreq [Hz] 

75.0 

O [ms] 

 13.33 

P [ ms ] 

1.6 

Q [ ms ] 

0.2 

R [ ms ] 

11.33 

S [ ms ] 

0.2 

VideoClock [MHz] 

100,0 

background image

ROZWIĄZANIE: 
 
DANE:  

Rozdzielczość 1152 x 870 
VFreq = 75 Hz 
VCLK = 100 MHz

 

************OBLICZENIA WSTĘPNE***************** 

O =1/VFreq = 1/(75 Hz) = 13.33 ms 

HActive = D =11521/VCLK =1152*10 ns = 11.52 

µ

**********************************************************

 

 

*********VERTICAL********************************** 
 

Dobieramy VBlank

 

VBlank =1/VFreq 

 (HActive+HBlank) ∗

                 

VBlank ma wartość maksymalną dla HBlank=0 stąd:                 

                 

 VBlank << 1/VFreq 

 (HActive+0) 870 = 13.33 

 10.02 =3.31 ms

:

  

 

 

Przyjmujemy 

VBlank = 2 ms 

VBlank = P + Q + S 

 

Q = S = 

 (10÷20%) VBlank  

przyjmujemy10% stąd:  

                

 Q = S = 0.2 ms 

 

P = 1.6 ms 

  

R = VActive = 1/VFreq 

 VBlank = 13.33 

 2 =11.33 ms 

 

A = 1/HFreq = VActive/ 870 =11.33 ms / 870 =12.98 

µ

HBlank = A 

 D = 1/HFreq 

 HActive =12.98 

 11.52 =1.46 

µ

 

HBlank = B + C + E 

 

C = E = 

 (10÷20%) HBlank 

przyjmujemy C=E=0.23 

µ

s (

15% ) stąd: 

                 

C = E = 0.23 

µ

 
 

B = HBlank - C - E = 1.46 -0.23-0.23 = 1 

µ

********************************************************* 

background image

 

 
*********HORIZONTAL****************************** 
 

Dobieramy HBlank 

HBlank + HActive =(1/VFreq-VBlank) / 870 

                 HBlank ma wartość maksymalną dla VBlank=0 stąd:

     

              HBlank + HActive << (1/VFreq-0) / 870= 13.33 ms / 870 = 15.32 

µ

s        

 

HBlank << 15.32 

µ

 HActive = 15.32 

 11.52 = 3.8 

µ

s 

 

Przyjmujemy 

HBlank = 1.46 

µ

 

HBlank = B + C + E 

 

C = E = 

 (10÷20%) HBlank 

               

przyjmujemy 

C = E = 0.23 

µ

s  

stąd  

B =1.46 

 0.23 

 0.23 = 

µ

 

A = 1/HFreq = HActive + HBlank =11.52+1.46 = 12.98 

µ

 

R = VActive = 1/HFeq  870 = 11.33 

-
 

VBlank = O 

 R = 1/VFreq 

 VActive =13.3 

 11.3 =2 ms 

 

VBlank = P + Q + S 

 

Q = S = 0.2 ms 

 (10÷20%) VBlank 

 

P = 1.6 ms 

********************************************************* 
 

 
 

background image

 

 

Dla HSync jednostka taktu 

1/VCLK= 10 ns 

Przeliczenie 

na takty 

Dla VSync jednostka taktu 

1/HFreq= A= 12.98  µs 

Przeliczenie na takty 

12.98 µs 

1298 

13.3 ms 

13.3 ms/(12.98 µs)=

1024

 

1.00 µs 

100 

1.6 ms 

1.6 ms/(12.98 µs)=

123

 

0.23 µs 

23 

0.2 ms 

0.2 ms/(12.98 µs)=

15

 

11.52 µs 

1152 

11.3 ms 

11.3 ms/(12.98 µs)=

870

 

0.23 µs 

23 

0.2 ms 

0.2 ms/(12.98 µs)=

15

 

background image

 
 
 
Rejestry H (

uwzględniona  numeracja taktów od 0)

 

 

 
 

 

 

HESYNC+1  B = 100 

HEBLNK+1  B + C = 100 + 23 = 123 

HSBLNK+1  B + C + D = 123 + 1152 = 1275 

HTOTAL+1  B + C + D + E =A = 1275 + 23= 1298 

background image

 

 
 
 
 

 

Rejestry V  
(

uwzględniona numeracja taktów od 0)

 

 

 
 
 
 
 
 

VESYNC+1  P = 123 

VEBLNK+1  P + Q = 123 + 15 = 138 

VSBLNK+1  P + Q + R = 138 + 870 = 1008 

VTOTAL+1  P + Q + R + S =O = 1008 + 15= 1023 

 

 

 

 

background image

Zweryfikować parametry czasowe obliczone z rzeczywistymi 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Literatura: Grafika Komputerowa – metody i narzędzia. 

Jan Zabrodzki 

Rozdz. 9 

9.22 Procesory graficzne 

TMS 34010 
TMS 34020 

Układ współpracy z urządzeniami zobrazowania 

 

Rejestry wewnętrzne: 
HESYNC+1  
  

Wartości obliczone  

Wartości rzeczywiste 

1/VCLK= 10 ns 

12.98 µs 

1298•10 ns=12.98 µs  

1.00 µs 

100•10 ns=1.00 µs 

0.23 µs 

23•10 ns=0.23 µs  

11.52 µs 

1152•10 ns=11.52 µs 

0.23 µs 

23•10 ns=0.23 µs   

Wartości obliczone  

Wartości rzeczywiste  

1/HFreq= A= 12.98  µs 

13.3 ms 

1024•12.98 µs = 13.291 ms

   

1.6 ms 

123•12.98 µs = 1.596 ms

    

0.2 ms 

15•12.98 µs = 0.195 ms

     

11.3 ms 

870•12.98 µs = 11.293 ms

     

0.2 ms 

15•12.98 µs = 0.195 ms

     

background image

WYNIKI 

 Zadanie 1     

  

  

  

  

 
  

 

  

  

  

 

DANE 

  

WYNIK 

 

 

 

  

 

VFreq 

60  [Hz] 

  

VActive

 [ms] 

14,67   

 

 

  

 

VBlank 

2  [ms] 

  

  

  

  

  

  

  

 

HBlank 

2  [µ

s] 

  

  

  

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

DANE 

WYNIK 

  

  

  

  

 

  

HFreq

 [kHz]  HActive [µs]  VBW [MHz]    

  

  

  

 

Hercules 

720 

348 

23,73 

40,15 

17,93 

 
  

 

  

  

  

 

EGA 

640 

350 

23,86 

39,90 

16,04    

  

  

  

 

VGA 

640 

480 

32,73 

28,56 

22,41    

  

  

  

 

SVGA 

800 

600 

40,91 

22,44 

35,64    

  

  

  

 

  

1024 

768 

52,36 

17,10 

59,89    

  

  

  

 

TIGA 

1280 

1024 

69,82 

12,32 

103,87    

  

  

  

 

  

1600 

1280 

87,27 

9,46 

169,16    

  

  

  

 

 
  

 

  

  

  

  

  

  

  

  

  

 

Zadanie 2  

  

z przeplotem 

  

  

  

  

  

 

 
  

 

  

  

  

  

  

  

  

  

  

 

DANE 

  

WYNIK 

  

  

  

  

 

VFreq 

60  [Hz] 

  

VActive

 [ms] 

14,67    

  

  

  

 

VBlank 

1  [ms] 

  

  

  

  

  

  

  

 

HBlank 

2  [µ

s] 

HBlank

p

 

3,6  [µ

s] 

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

DANE 

WYNIK 

  

  

  

  

 

  

HFreq

 [kHz]  HActive [µs]  VBW [MHz]    

  

  

  

 

SVGA 

800 

600 

20,45 

45,29 

17,66    

  

  

  

 

  

1024 

768 

26,18 

34,59 

29,60    

  

  

  

 

TIGA 

1280 

1024 

34,91 

25,05 

51,11    

  

  

  

 

  

1600 

1280 

43,64 

19,32 

82,83    

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

Zadanie 3 

  

  

  

  

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

DANE 

  

WYNIK 

  

  

  

  

 

VCLK 

100  [MHz]    

HActive

 [µs] 

16,00    

  

  

  

 

VBlank 

1  [ms] 

  

  

  

  

  

  

  

 

HBlank 

1  [µ

s] 

HBlank

p

 

1,8[µ

s]    

  

  

  

  

 

  

  

  

  

  

  

  

  

 

  

1600 

1280    

  

  

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

  

  

  

WYNIK 

  

  

  

  

  

 

  

  

  

(a)

 bez przeplotu 

(b)

 z przeplotem 

  

  

  

  

  

 

1/HFreq 

s] 

17 

17,8    

  

  

  

  

 

VActive

 

[ms] 

21,76 

11,39    

  

  

  

  

 

1/VFreq 

[ms] 

22,76 

12,39    

  

  

  

  

 

VFreq 

[Hz] 

43,9 

80,7    

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

 

o  

HFreq=1/(VActive/L) 

 HActive=1/HFreq-HBlank 

o  

VBW=1/(HActive/K)

  

o  

VActive=1/VFreq - VBlank

  

o  

HFreq=1/(VActive/(L/2)) 

o

  HBlank

p

=1,8*HBlank 

o

  HActive=1/HFreq-HBlank

p

 

o  

VBW=1/(HActive/K)

  

o  

VActive=1/VFreq - VBlank

  

(a) 
1/HFreq=HActive+HBlank 

  

VActive=L*1/HFreq 

 

1/VFreq=VActive+Vblank 

 

VFreq=

  

 HBlank

p

=1,8*HBlank

 

o  

HActive=K*1/VCLK

  

(b) 
1/HFreq=HActive+HBlank

  

VActive=L/2*1/HFreq 

 

1/VFreq=VActive+Vblank 

 

VFreq=

  

background image