280 likes | 431 Views
Wykład 6:. Stałoprzecinkowe mikroprocesory sygnałowe: architektura podstawowe operacje. Rodziny procesorów sygnałowych. stałoprzecinkowe (16-bitowe): ADSP21xx zmiennoprzecinkowe (32-bitowe): ADSP21xxx dedykowane (stałoprzecinkowe, 16-bitowe): ADMCx01, ADMC2199x
E N D
Wykład 6: Stałoprzecinkowe mikroprocesory sygnałowe: • architektura • podstawowe operacje
Rodziny procesorów sygnałowych • stałoprzecinkowe (16-bitowe): ADSP21xx • zmiennoprzecinkowe (32-bitowe): ADSP21xxx • dedykowane (stałoprzecinkowe, 16-bitowe): ADMCx01, ADMC2199x • Na przykładzie DSP firmy Analog Devices
Architektura jednego z modeli serii ADSP21xx - elementy składowe: ALU - operacje arytmetyczno-logiczne MAC - jednostka „mnóż i dodawaj” SHIFTER - przesuwanie bitów (skalowanie -zmiana zakresu liczb) DAG#1/2 - adresowanie pamięci danych i pamięci programu PROGRAM i DATA MEMORY - pamięci 24 i 16 bitowe (arch. Harvard) elementy I/O (wejścia wyjścia) i peryferia : porty szeregowe, flagi I/O, timer, ...
Jednostka ALU (21xx) • Jednostka ALU jes 16-bitowa z dwoma wejściami X i Y i jednym wyjściem R • Rejestry wejściowe X (AX0, AX1), Y(AY0, AY1) oraz wyjściowe R (AR)- mają swoje rejestry cienie • W operacjach ALU uwzględniona zostaje wejście CI (AC) - z rejestru ASTAT - możliwość operacji wielokrotnej precyzji • W wyniku działania odpowiednio ustawiane są bity w rejestrrze statusowym (ASTAT): zero (AZ), negacja (AN), przeniesienie/pożyczka (AC), przepełnienie (AV), znak wejścia X (AS) i (AQ) status ilorazu • Wynik operacji ALU jest zapamiętywany w rejestrach AR (result) lub AF (feedback) • Rejestr AF jest rejestrem wewnętrznym umozliwiającym użycie wyniku bezpośrednio jako jedno z wejść (wejście Y) • Rejestr AR może zostać przesłany na magistralę R-BUS lub magistralę DMD-BUS oraz załadowany z magistrali DMD-BUS
Jednostka ALU (21xx) Możliwe źródła dla wejść X i Y oraz podłączenie wyjscia XYR AX0, AX1 AY0, AY1 AR AR AF AF MR0, MR1, MR2 SR0, SR1 Zakres liczb w stosowanym zapisie 1.15 Interpretacja flag AV i AC
Jednostka ALU (21xx) - dozwolone operacje R = X + Y Add X and Y operands R = X + Y + CI Add X and Y operands and carry-in bit R = X – Y Subtract Y from X operand R = X – Y + CI - 1 Subtract Y from X operand with “borrow” R = Y – X Subtract X from Y operand R = Y – X + CI - 1 Subtract X from Y operand with “borrow” R = – X Negate X operand (twos-complement) R = – Y Negate Y operand (twos-complement) R = Y + 1 Increment Y operand R = Y – 1 Decrement Y operand R = PASS X Pass X operand to result unchanged R = PASS Y Pass Y operand to result unchanged R = 0(PASS 0) Clear result to zero R = ABS X Absolute value of X operand R = X AND Y Logical AND of X and Y operands R = X OR Y Logical OR of X and Y operands R = X XOR Y Logical Exclusive OR of X and Y operands R = NOT X Logical NOT of X operand (ones-complement) R = NOT Y Logical NOT of Y operand (ones-complement)
Jednostka MAC (21xx) • - Dwa 16-bitowe wejścia X,Y • - Wynik mnożenia w postaci 32-bitowej R • - Wynik podawany jest na wejście 40-bitowej jednostki dodająco/odejmującej. Gdy wynik wykracza poza zakres 32-bitowy - ustawiany jest bit MV (rejestr ASTAT). • Rejestry wejściowe X (AX0, AX1), Y(AY0, AY1) oraz wyjściowe MF, MR oba zestawy mają swoje rejestry cienie • - Wynik przechowywany jest w rejestrze 40-bitowym MR== MR2 (8-bitów), MR1(16bitów), MR0(16bitów) • - Wynik może być podany na wejście Y (poprzez 16-bitowy rejestr MF) • - Wszystkie rejestry mogę być odczytywane lub zapisywane w tym samym czasie (podobnie w ALU)
Jednostka MAC (21xx) Żródła dla wejść i wyjść X Y R MX0, MX1 MY0, MY1 MR (MR2, MR1, MR0) AR MF MF MR0, MR1, MR2 SR0, SR1 MAC - przepełnienie i nasycanie się wyniku Zaokrąglanie wyniku (część ułamkowa - bity 15..0 zostaje zaokrąglona w górę lub w dół. Różne traktowanie punktu MIDPOINT Różne traktowanie tzw. punktu MIDPOINT
Jednostka MAC (21xx) - dozwolone operacje • MR=X*Y Multiply X and Y operands. • MR=MR+X*Y Multiply X and Y operands and add result to MR register. • MR=MR–X*Y Multiply X and Y operands and subtract result from MR register. • MR=0 Clear result (MR) to zero.
Jednostka SHIFTER (21xx) • • Arithmetic Shift (ASHIFT) • • Logical Shift (LSHIFT) • • Normalize (NORM) • • Derive Exponent (EXP) • • Block Exponent Adjust (EXPADJ)
Operation Codes (OPCODES) - przykłady DM(I0,M0)=0x1234 DM(0x5678)=0x1234
Operation Codes (OPCODES) - przykłady DM(0x1234)=X0 Adres = 0x0000 - 0x3FFF X0=0x1234 dana = 0x0000 - 0xFFFF
Operation Codes (OPCODES) MR = MR - MX0*MY0 (RND), MX0=MY1
Instrukcje warunkowe IF GE MR = MR - MX0*MY0 (RND)
Jednostka ALU - podstawowe operacje • y,a,b - liczby całkowite (stałoprzecinkowe) • y = a + b • - procesor 80x86 • MOV AL, [0x1000] • ADD AL, [0x1001] • MOV [0x1002],AL • jednostka ALU (21xx) • AX0 = DM(0x1000) • AY0 = DM(0x1001) • AR = AX0 + AY0 • DM(0x1002)=AR • jednostka ALU (21xx) • I0 = 0x1000 • M0 = 0x0001 • AX0 = DM(I0,M0) • AY0 = DM(I0,M0) • AR = AX0 + AY0 • DM(I0,M0) = AR
Warunkowe operacje ALU/ MAC/ Shifter • Instrukcje wykonywane warunkowo: • IF warunek instrukcja • Jednoczesnie wykonywane operacje: • ALU, • MAC, • Shifter, • pobranie danej z pamięci programu, • pobranie danej z pamięci danych
Architektura procesorów sygnałowych • Rozwój serii 21xxx
Architektura procesorów sygnałowych • Architektura jednego z modeli serii 210xx (Sharc)
Architektura procesorów sygnałowych • Architektura modelu serii 211xx (Sharc)
Podstawowe Operacje ALU: „0” - flaga zostanie skasowana; „*” - skasowana lub ustawiona(w zależności od wyniku); „**” - może zostać tylko ustawiona lecz nie skasowana „-” - bez zmian