Programowanie niskopoziomowe / Moduł 7: Programowanie jednostek wektorowych

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

PNP M7 S01.png

...


PNP M7 S02.png

...


PNP M7 S03.png

Jednostki wektorowe operują na długich słowach, interpretowanych jako wektory danych o formatach krótszych od długości słowa.

Ze względu na długość przetwarzanych słów jednostki wektorowe mają własne rejestry danych, niedostępne dla jednostek stałopozycyjnych.

Ponieważ typowo wszystkie elementy wektora podlegają takiemu samemu przetwarzaniu, nie ma możliwości realizacji rozejść warunkowych dla poszczególnych elementów. Jednostki wektorowe realizują specyficzny model operacji warunkowych bez rozejść programu, opisany w dalszej części wykładu.

Ponieważ jednostki wektorowe służą najczęściej realizacji konkretnych algorytmów (np. przetwarzania dźwięków i obrazów, ich zestaw instrukcji zawiera często instrukcje z pozoru dziwne, związane z wybranymi algorytmami (np. uśrednianie elementów dwóch wektorów lub arytmetyka z nasyceniem).


PNP M7 S04.png

...


PNP M7 S05.png

...


PNP M7 S06.png

...


PNP M7 S07.png

...


PNP M7 S08.png

...


PNP M7 S09.png

...


PNP M7 S10.png

...


PNP M7 S11.png

...


PNP M7 S12.png

Kolorem zielonym zaznaczono bajty, dla których wynik dodawania nie podlega nasyceniu do granic zakresu reprezentowalnego.

W bajtach oznaczonych kolorem czerwonym wynik jest większy od największej reprezentowalnej wartości (127). Jest im nadawana wartość równa największej wartości reprezentowalnej.

Analogicznie w bajtach oznaczone kolorem niebieskim mamy do czynienia z niedomiarem, czyli wynikiem poniżej -128. Wartość końcowa po nasyceniu staje się równa -128.


PNP M7 S13.png

...


PNP M7 S14.png

...


PNP M7 S15.png

...


PNP M7 S16.png

...


PNP M7 S17.png

...


PNP M7 S18.png

Do realizacji operacji warunkowych potrzebne są dwa potencjalne wyniki obliczeń – dla ścieżek „then” i „else” oraz wartość wyrażenia logicznego określającego warunek, przedstawiona w postaci masek bitowych. Instrukcje porównań wektorowych generują wyniki w takiej właśnie postaci.

Wśród instrukcji jednostki wektorowej znajdziemy instrukcję „AND NOT”, która realizuje iloczyn logiczna z negacją jednego z argumentów. Stosując tę instrukcję oraz instrukcję zwykłego iloczynu logicznego otrzymujemy wektory zawierające wyniki i zera. Te dwa wektory są poddawane operacji sumy logicznej.


PNP M7 S19.png

...


PNP M7 S20.png

...


PNP M7 S21.png

...


PNP M7 S22.png

...


PNP M7 S23.png

...


PNP M7 S24.png

...


PNP M7 S25.png

...


PNP M7 S26.png

...


PNP M7 S27.png

...