Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG

50
Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński

description

Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG. PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński. Architektura SHARC’a 211xx. ADSP-21161: Grupy Rejestrów. Rejestry I/O procesora. Rejestry komplementarne. - PowerPoint PPT Presentation

Transcript of Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG

Page 1: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG

PG – Katedra Systemów Mikroelektronicznych

ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH

Marek Wroński

Page 2: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Architektura SHARC’a 211xx

Page 3: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

ADSP-21161: Grupy Rejestrów

Page 4: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Rejestry I/O procesora. Rejestry komplementarne

Page 5: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Ustawianie trybów DAGów

Page 6: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Plik rejestru danych: cechy

Page 7: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Jednostka obliczeniowa Sharc’a

Page 8: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Cechy ALU

Page 9: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Instrukcje ALU: stałoprzecinkowe (Fixed Point)

Page 10: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Instrukcje ALU: zmiennoprzecinkowe (Floating Point)

Page 11: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Flagi statusu ALU

Page 12: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

ALU: kody warunkowego wykonania. Przykład warunków

Page 13: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Cechy MAC. Przykładowe instrukcje

Page 14: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Multiplier/ MAC Instrukcje

Page 15: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Instrukcje stałoprzecinkowe i zmiennoprzecinkowe MAC’a

Page 16: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Umiejscowienie wyniku mnożenia

Page 17: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Mnożenie zmiennoprzecinkowe

Page 18: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Flagi statusu MAC’a

Page 19: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Multiplier/MAC: warunkowo wykonywane kody

Page 20: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

SHIFTER (przesuwnik): cechy +Status Flags, warunk.wykonanie

Page 21: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Instrukcje Shifter’a

Page 22: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Przykładowe instrukcje

Page 23: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Przesuwanie logiczne i arytmetyczne

Page 24: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Przenoszenie pola bitowego

Page 25: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Wydobycie pola bitowego

Page 26: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Operacje bitowe

Page 27: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Operacje bitowe – c.d.

Page 28: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Flagi ALU: rejestr ASTATx/y

Page 29: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Flagi ALU: rejestr STKx/y

Page 30: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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

Page 31: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

c.d.

Page 32: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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

Page 33: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

c.d.

Page 34: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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)

Page 35: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Typy stałoprzecinkowe „operandów” jednostki MACC i zakresy wyników

Page 36: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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)

Page 37: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

c.d. stałoprzecinkowych i zmiennoprzecinkowe

- dla operacji zmiennoprzecinkowych wynik zawsze w rejestrze uniwersalnym

Page 38: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Barrel – Shifter (przesuwanie i modyfikacja wartości bitów)

Page 39: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

c.d.

Page 40: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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

Page 41: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Mnożenie stałoprzecinkowe z jednoczesnymi operacjami ALU

Page 42: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Mnożenie zmiennoprzecinkowe z jednoczesnymi operacjami ALU

Ra = Rx + Ry, Rs = Rx – RyFa = Fx + Fy, Fs = Fx – Fy

MRF=MRF-R5*R0, R6=DM(I1,M2);

R5=MR1F, R6=DM(I1,M2);

Page 43: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Przykład procedury: filtr FIR

Page 44: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Przykład procedury: sinus

Page 45: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

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

Page 46: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Register-To-Register Move Summary (SISD Versus SIMD)

Page 47: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Generator adresu danych DAG

Page 48: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Rejestry DAG’ów

Page 49: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Podstawowe operacje DAG’ów - post-modify

Page 50: Wykład 4:   Podstawowe operacje                  ALU, MACC, SHIFTER i DAG

Podstawowe operacje DAG’ów - pre-modify