Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG
Architektura SHARC’a 211xx
ADSP-21161: Grupy Rejestrów
Rejestry I/O procesora. Rejestry komplementarne
Ustawianie trybów DAGów
Plik rejestru danych: cechy
Jednostka obliczeniowa Sharc’a
Cechy ALU
Instrukcje ALU: stałoprzecinkowe (Fixed Point)
Instrukcje ALU: zmiennoprzecinkowe (Floating Point)
Flagi statusu ALU
ALU: kody warunkowego wykonania. Przykład warunków
Cechy MAC. Przykładowe instrukcje
Multiplier/ MAC Instrukcje
Instrukcje stałoprzecinkowe i zmiennoprzecinkowe MAC’a
Umiejscowienie wyniku mnożenia
Mnożenie zmiennoprzecinkowe
Flagi statusu MAC’a
Multiplier/MAC: warunkowo wykonywane kody
SHIFTER (przesuwnik): cechy +Status Flags, warunk.wykonanie
Instrukcje Shifter’a
Przykładowe instrukcje
Przesuwanie logiczne i arytmetyczne
Przenoszenie pola bitowego
Wydobycie pola bitowego
Operacje bitowe
Operacje bitowe – c.d.
Flagi ALU: rejestr ASTATx/y
Flagi ALU: rejestr STKx/y
Podstawowe operacje stałoprzecinkowe ALU „0” - flaga zostanie skasowana; „*” - skasowana lub ustawiona(w zależności od wyniku); „**” - może zostać tylko ustawiona lecz nie skasowana; „-” - bez zmian
c.d.
Operacje zmiennoprzecinkowe „0” - flaga zostanie skasowana; „*” - skasowana lub ustawiona(w zależności od wyniku); „**” - może zostać tylko ustawiona lecz nie skasowana; „-” - bez zmian
c.d.
Operacje stałoprzecinkowe MACC – wynik mnożenia i tryby pracy • Bit 16 (RND32) round floating-point data to 32 bits (if 1) or round to 40 bits (if 0) • Rounding mode. Bit 15 (TRUNC) round results with round-to-zero (if 1) or round-to-nearest (if 0) • ALU saturation. Bit 13 (ALUSAT) saturate results on positive or negative fixed-point overflows (if 1) or return unsaturated results (if 0)
Typy stałoprzecinkowe „operandów” jednostki MACC i zakresy wyników
Operacje stałoprzecinkowe 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)
c.d. stałoprzecinkowych i zmiennoprzecinkowe - dla operacji zmiennoprzecinkowych wynik zawsze w rejestrze uniwersalnym
Barrel – Shifter (przesuwanie i modyfikacja wartości bitów)
c.d.
Operacje wielofunkcyjne Jednocześnie wykonywane operacje: ALU MACC Shifter Pobranie danej z PM Pobranie danej z DM Warunkowe operacje ALU/ MACC/ Shifter: IF warunek instrukcja
Mnożenie stałoprzecinkowe z jednoczesnymi operacjami ALU
Mnożenie zmiennoprzecinkowe z jednoczesnymi operacjami ALU MRF=MRF-R5*R0, R6=DM(I1,M2); Ra = Rx + Ry, Rs = Rx – Ry Fa = Fx + Fy, Fs = Fx – Fy R5=MR1F, R6=DM(I1,M2);
Przykład procedury: filtr FIR
Przykład procedury: sinus
To support SIMD, the DSP performs the following parallel operations: Operacje SIMD To support SIMD, the DSP performs the following parallel operations: •Dispatches a single instruction to both processing element’s computation units •Loads two sets of data from memory, one for each processing element •Executes the same instruction simultaneously in both processing elements •Stores data results from the dual executions to memory The transfer direction and data bus usage depend on the following conditions: •Computational mode: – Is PEy enabled—PEYEN bit=1 in MODE1 register – Is the data register file in PEx (R0-R15, F0-F15) or PEy (S0-S15) – Is the instruction a data register swap between the processing elements •Data addressing mode: – What is the state of the Internal Memory Data Width (IMDW) bits in the System Configuration (SYSCON) register – Is Broadcast write enabled—BDCST1,9 bits in MODE1 register – What is the type of address—long, normal, or short word – Is Long Word override (LW) specified in the instruction – What are the states of instruction fields for DAG1 or DAG2 •Program sequencing (conditional logic): –What is the outcome of the instruction’s condition comparison on each processing element
Register-To-Register Move Summary (SISD Versus SIMD)
Generator adresu danych DAG
Rejestry DAG’ów
Podstawowe operacje DAG’ów - post-modify
Podstawowe operacje DAG’ów - pre-modify