Wykład 7: Zmiennoprzecinkowe mikroprocesory sygnałowe firmy Analog Devices: zastosowania i rodziny architektura podstawowe operacje ALU
Rodziny procesorów sygnałowych firmy Analog Devices stałoprzecinkowe 16-bitowe: ADSP21xx zmiennoprzecinkowe 32-bitowe: ADSP21xxx dedykowane: ADMCx01, ADMC2199x
Architektura procesorów sygnałowych Architektura jednego z modeli serii ADSP21xx (procesor stałoprzecinkowy)
Architektura procesorów sygnałowych Architektura jednego z modeli serii 210xx (Sharc) (procesor zmiennoprzecinkowy)
Architektura procesorów sygnałowych Architektura modelu serii 211xx (Sharc)
Jednostka obliczeniowa procesora Sharc
Flagi operacji arytmetyczno logicznych: rejestr ASTATx/y
Flagi operacji arytmetyczno logicznych: rejestr ASTATx/y • ALU result zero or floating-point underflow. Bit 0 (AZ) • ALU overflow. Bit 1 (AV) • ALU result negative. Bit 2 (AN) • ALU fixed-point carry. Bit 3 (AC) • ALU X input sign for ABS, Mant operations. Bit 4 (AS) • ALU floating-point invalid operation. Bit 5 (AI) • Last ALU operation was a floating-point operation. Bit 10 (AF) • Compare Accumulation register results of last 8 compare operations. Bits 31-24 (CACC)
Flagi operacji arytmetyczno-logicznych: rejestr STKx/y
Flagi operacji arytmetyczno logicznych: rejestr STKx/y Flagi, które mogą zostać tylko ustawione przez ALU (kasowane przez program) • ALU floating-point underflow. Bit 0 (AUS) • ALU floating-point overflow. Bit 1 (AVS) • ALU fixed-point overflow. Bit 2 (AOS) • ALU floating-point invalid operation. Bit 5 (AIS)
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
Operacje ALU - c.d. „0” - flaga zostanie skasowana; „*” - skasowana lub ustawiona(w zależności od wyniku); „**” - może zostać tylko ustawiona lecz nie skasowana; „-” - bez zmian
Operacje FPU jednostki ALU: „0” - flaga zostanie skasowana; „*” - skasowana lub ustawiona(w zależności od wyniku); „**” - może zostać tylko ustawiona lecz nie skasowana; „-” - bez zmian
Operacje FPU jednostki ALU - c.d.
Operacje stałoprzecinkowe jednostki MACC – wynik mnożenia.
Tryby pracy jednostki ALU/MACC (rejestr MODE1) • Bit 16 (RND32) directs the computational units to round floating-point data to 32 bits (if 1) or round to 40 bits (if 0) • Rounding mode. Bit 15 (TRUNC) directs the computational units to round results with round-to-zero (if 1) or round-to-nearest (if 0) • ALU saturation. Bit 13 (ALUSAT) directs the computational units to saturate results on positive or negative fixed-point overflows (if 1) or return unsaturated results (if 0)
Typy stałoprzecinkowe „operandów” jednostki ALU/MACC
Zakresy wyników mnożenia stałoprzecinkowego ALU
Operacje stałoprzecinkowe jednostki MACC • Multiplier result negative. Bit 6 (MN) • Multiplier overflow. Bit 7 (MV) • Multiplier underflow. Bit 8 (MU) • Multiplier floating-point invalid operation. Bit 9 (MI) • Multiplier fixed-point overflow. Bit 6 (MOS) • Multiplier floating-point overflow. Bit 7 (MVS) • Multiplier underflow. Bit 8 (MUS) • Multiplier floating-point invalid operation. Bit 9 (MIS)
Operacje stałoprzecinkowe jednostki MACC – c.d.
Operacje zmiennoprzecinkowe jednostki MACC - wynik zawsze w rejestrze uniwersalnym
Barrel-Shifter - podstawowe funkcje - przesuwanie bitów w lewo/prawo - modyfikacja wartości bitów: ustawianie, kasowanie zmiana i testowanie
Barrel-Shifter - instrukcje
Barrel-Shifter - instrukcje, c.d.
Mnożenie zmiennoprzecinkowe z jednoczesnymi operacjami ALU
Mnożenie zmiennoprzecinkowe z jednoczesnymi operacjami ALU
Generator adresu danych (Data Addres Generator) DAG
Generator adresu danych (Data Addres Generator) DAG
Generator adresu danych Podstawowe operacje - post-modify
Generator adresu danych Podstawowe operacje - pre-modify