Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit)

Podobne dokumenty
Protokół komunikacyjny sondy cyfrowej CS-26/RS-485 (lub RS-232)

Współczesne techniki informacyjne

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Struktura i działanie jednostki centralnej

Przykładowe pytania DSP 1

10.Architekturyspecjalizowane

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

Adam Korzeniewski p Katedra Systemów Multimedialnych

Zastosowania Procesorów Sygnałowych. dr inż. Grzegorz Szwoch p Katedra Systemów Multimedialnych.

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Technika audio część 2

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Filtry FIR i biblioteka DSPLIB

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

FPGA IMPLEMENTATION OF FAST FOURIER TRANSFORM ALGORITHM IMPLEMENTACJA ALGORYTMU SZYBKIEJ TRANSFORMATY FOURIERA W UKŁADZIE PROGRAMOWALNYM FPGA

Tryby adresowania procesorów rodziny ColdFire

Architektura mikroprocesorów z rdzeniem ColdFire

Generowanie sygnałów na DSP

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

Architektura komputerów. Asembler procesorów rodziny x86

Architektura mikroprocesorów z rdzeniem ColdFire

Przekształcenie Fouriera i splot

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

9. Dyskretna transformata Fouriera algorytm FFT

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

FFT i dyskretny splot. Aplikacje w DSP

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej:

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

MIKROKONTROLERY I MIKROPROCESORY

Architektura komputerów

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Cyfrowy zapis informacji

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Laboratorium Inżynierii akustycznej. Przetwarzanie dźwięku - wprowadzenie do efektów dźwiękowych, realizacja opóźnień

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Teoria przetwarzania A/C i C/A.

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

1. Operacje logiczne A B A OR B

Wykorzystano materiały książki Marven C., Ewers G.: Zarys cyfrowego przetwarzania sygnałów Warszawa WKŁ 1999, a więc mogą być stosowane oraz

Mikrokontrolery AVR ATmega

Architektura komputerów

Architektura typu Single-Cycle

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Wprowadzenie do programowania na procesorze sygnałowym

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Kurs Zaawansowany S7. Spis treści. Dzień 1

Sprzęt i architektura komputerów

Procesory sygnałowe (Analog Devices)

Spis treści. Metody nieparametryczne. Transformacja Fouriera

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Transformata Fouriera i analiza spektralna

1 Ocena doboru tematu oraz celu i zakresu przeprowadzonych

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa.

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca)

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Lista Rozkazów: Język komputera

Programowanie Układów Logicznych kod kursu: ETD6203. Specjalizowane architektury do obliczeń DSP

13.2. Filtry cyfrowe

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

13. Wybrane algorytmy cyfrowego przetwarzania sygnałów

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-05c-Modbus. HOTCOLD s.c

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Projektowanie. Projektowanie mikroprocesorów

Seminarium dyplomowe. akustycznych w oparciu o procesor wielordzeniowy. Promotor: dr inż. Krzysztof Czyż

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

Magistrala systemowa (System Bus)

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

!"#!"$%! %$"#%!!$! !"!#$ )&! &

Arytmetyka liczb binarnych

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 5 - suplement

Pracownia Komputerowa wykład V

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod U2 Opracował: Andrzej Nowak

Implementacja algorytmów DSP w mikrokontrolerach STM32F3

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obieralny (obowiązkowy / nieobowiązkowy) polski semestr VI

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Dokładność obliczeń numerycznych

Podstawy Informatyki dla Nauczyciela

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-03-Modbus. HOTCOLD s.c

Adam Korzeniewski p Katedra Systemów Multimedialnych

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Transkrypt:

Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit) 1

Moduł MAC (1) Jednostka arytmetyczna przeznaczona do operacji wykorzystywanych podczas cyfrowej obróbki sygnałów DSP (Digital Signal Processing). Sygnały wyjściowe Sygnały wejściowe ADC Procesor DSP (MAC) MCF 5250 DAC 2

Zastosowanie jednostki EMAC Cyfrowe przetwarzanie sygnałów Transformaty: Fast Fourier transform FFT, Discrete Cosine Transform (DCT), Fast Hadamard Transform (FHT), Discrete Hartley Transform (DHT), itd... Filtry cyfrowe: Finite impulse response filter (FIR), Infinite impulse response filter (IIR), Kompresja obrazów, selektywne filtrowanie sygnałów, sterowniki PID, itd... 3

Transformata DCT DTC = rozszerzenie transformaty FFT z dodatkowym przetwarzaniem danych Mnożenie macierzy, Mnożenie i akumulacja wyników, 4

Moduł MAC (2) Wykonywane operacje: Szybkie mnożenie liczb ze znakiem oraz bez znaku, Operacje MAC (ze znakiem oraz bez), liczby całkowite oraz ułamkowe, Dedykowane operacje na rejestrach oraz macierzach. MAC: operacje 16-bitowe, pojedynczy 32-bitowy akumulator, trójstopniowy potok EMAC: operacje 32-bitowe, cztery 48-bitowe akumulatory, czterostopniowy potok, liczby ułamkowe (Frac32) 5

Potok modułu EMAK 6

Rejestry modułu EMAC 32 ACC1 ACC0 ACC3 ACC2 16 15 MACSR ACC0 ACC1 ACC2 ACC3 ACCext01 ACCext23 MASK 0 7

Rejestr statusowy MACSR (1) PAVx flaga przepełnienia, ustawiana podczas akumulacyjnego dodawania, czyszczona podczas kasowania flagi V, zapisu MACSR lub załadowania akumulatora, OMC przepełnienie (OMC=0) / nasycenie (OMC=1), S/U Operacje ze znakiem lub bez, F/I Tryb pracy: całkowity (F/I=0), ułamkowy (F/I=1) -1...1-2-15 lub 1...1-2-31 R/T Zaokrąglanie (R/T=1) / Obcinanie (R/T=0) (podczas kopiowania zawartości 48-bitowego akumulatora do rejestru danych), N Z V EV ustawiana, gdy rezultat operacji jest ujemny (MULS, MULU nie ustawiają flagi N) ustawiana, gdy rezultat operacji zerowy (MULS, MULU nie ustawiają flagi Z) ustawiana, gdy nastąpi przepełnienie podczas wykonywania operacji MAC, MSAC (64 bit), ustawiana, gdy nastąpi przepełnienie (32/40 bit) podczas wykonywania operacji MAC, MSAC. 8

Rejestr statusowy MACSR (2) 9

Możliwe formaty danych (1) Liczby ujemne (U2) -2(N-1)... 2(N-1) - 1 Liczby dodatnie 0... 2(N-1) 1 (-N+1) Liczby ułamkowe -1... 1 2 0x8000.0000 = -1 0x7FFF.FFFF = 1-2-31 10

Możliwe formaty danych (2) 11

Mnożenie liczb całkowitych 12

Mnożenie liczb ułamkowych 13

Zapis i odtwarzanie stanu jednostki EMAC EMAC_state_save: %MACSR, %D7 clr.l %D0 %D0, %MACSR wyłącz zaokr. %ACC0, %D0 %ACC1, %D1 %ACC2, %D2 %ACC3, %D3 %ACCEXT01, %D4 %ACCEXT23, %D5 %MASK, %D6 movem.l #0x00FF, (%A7) EMAC_state_restore: movem.l (%A7), #0x00FF #0, %MACSR wyłącz zaokr. %D0, %ACC0 %D1, %ACC1 %D2, %ACC2 %D3, %ACC3 %D4, %ACCEXT01 %D5, %ACCEXT23 %D6, %MASK %D7, %MACSR 14

Rejestr maski (1) MASK 0xFFFF 31 16 15 MOVE.L MOVE.L 0 %D0, %MASK #10, %MASK 15

Rejestr maski (2) 0x0..00 MOVE.L MOVE.L #0x10.0000, %A0 #0x00FF, %MASK MAC.L %D2, %D0, (%A0)+&, %D2, ACC0 if <ea> = (An) if <ea> = (An)+ if <ea> = -(An) if <ea> = (d16,an) oa = An & (0xFFFF, %MASK) oa = (An+4) & (0xFFFF, %MASK) oa = (An-4) & (0xFFFF, %MASK) oa = (An+se_d16) & (0xFFFF, %MASK) oa = (An+4) & (0xFFFF 00FF) 0x10.0000 0x10.0004 0x10.0008...... 0x10.00FC 0x10.0000 Dana 0 & (0xFFFF 00FF) & (0xFFFF 00FF) & (0xFFFF 00FF) +4 +4 +4 & (0xFFFF 00FF) & (0xFFFF 00FF) +4 +4 0x0..BF Dana n-1 0x0..FF 16

Lista instrukcji jednostki EMAC 17

Multiply Accumulate mac.w mac.l mac.w mac.l %a0u, %d1l, %ACC0 %d0, %a1, >>, %ACC2 %a0u, %a1l, <<,%ACC3 %d0, %d1, %ACC4 Error: syntax error -- statement `mac.w %d0u,%d1l,<<,%acc4' ignored 18

Multiply Accumulate with Load Tryby adresowania argumentu źródłowego (Word) <ea>y: (Ay), (Ay)+, -(Ay), (d16,ay) mac.w %d2u, %d0u, (%a0)+&, %d1, %ACC0 D2u * D0u -> ACC0, (A0)=> D1, A0++ 19

Multiply Subtract 20

Przykłady użycia MAC/MSAC A0 Sample 0 Coefficient 0 movem.l (%a0), %d0-%d3 Sample 1 Coefficient 1 mac.w mac.w %d0u, %d0l, %ACC0 %d1u, %d1l, %ACC0 Sample n-1 Coefficient n-1 31 A5 movem.l movem.l (%a5), %d0-%d3 (%a6), %a0-%a3 16 15 Sample 1 Sample 0 Sample n-2 Sample n-1 Coefficient 0 Coefficient 1 0 mac.w %d0l, %a0l, >>, %ACC2 msac.w %d0u, %a0u, <<,%ACC3 zwykłe 1 clk mac.l msac.l %d0, %a1, %ACC1 %d0, %a1, %ACC2 zwykłe 3 clk A6 Coefficient n-2 Coefficient n-1 31 16 15 0 21

MOVE from ACC 22

MOVE from ACCext00..23 23

MOVE from MACSR 24

MOVE from MASK 25

MOVE to ACC 26

MOVE MACSR to CCR 27

Przykłady instrukcji MOVE STORE LOAD %D0, %ACC0 #100, %ACC3 %ACC0, %D0 %ACC3, %ACC0 %D0, %ACCext23 #100, %ACCext23 %ACCext23, %D0 %ACCext01, %D7 %D0, %MACSR #100, %MACSR %MACSR, %D0 %MACSR, %CCR %D0, %MASK #100, %MASK %MASK, %D0 %MASK, %D7 movem.l (%A7),%D0-%D7/%A0-%A6 Transfer BURST 60 bajtów 28

Biblioteki DSP http://www.freescale.com/ 29

Filtry cyfrowe Filtr o nieskończonej odpowiedzi impulsowej (IIR). Filtr o skończonej odpowiedzi impulsowej (FIR) => a(k) = 0. Równanie opisujący przykładowy filtr FIR czwartego rzędu 30

DTMF (dual-tone multi-frequency) dekoder 31

Normalizacja współczynników filtru Dolnoprzepustowy filtr cyfrowy o skończonej odpowiedzi impulsowej 21 rzędu Obliczone wsp. x32768 data section align 104 coeff: 2x10+1 słów = 24 B.long 0x011D.035D.long 0xFD81.00E9.long 0x01AE.FC61.long 0x02BC.01F2.long 0xF6DF.0FAA.long 0x2AAF.0000 0,008697 0,026267-0,01949 0,007113 0,013134-0,028302 0,021353 0,015199-0,07133 0,122376 0,333457 285 861-639 233 430-927 700 498-2337 4010 10927 0x011D 0x035D 0xFD81 0x00E9 0x01AE 0xFC61 0x02BC 0x01F2 0xF6DF 0x0FAA 0x2AAF } } queue: dane wejściowe 32 słowa na granicy 128 bajtów DS.B 64 h0, h20 h1, h19 h2, h18 h3, h17 h4, h16 h5, h15 h6, h14 h7, h 13 h8, h12 h9, h11 h10 hex h 1 = Σ h(n) h 32768 = Σ h(n) 32

Implementacja filtru cyfrowego FIR (2) main: clr.l %d0... clr.l %d7 #0xFF40, %mask lea coeff, %a1 movem.l (%a1), #0x00FC bsr.b FILTER FILTER: mac.w mac.w mac.w mac.w mac.w bsr #0, ACC0 GET_SAMPLE %d2u, %d0u, (%a0)+&, %d1, %ACC0 %d2l, %d0l, %ACC0 %d3u, %d1u, (%a0)+&, %d0, %ACC0 %d3l, %d1l, %ACC0 %d4u, %d0u, (%a0)+&, %d1, %ACC0... mac.w %d2u, %d0u, %ACC0 %ACC0, %d0 swap %d0 move.w %d0, RESULT rts maska dla bufora danych wej. 64 B adres pamięci z wsp. filtru załadowanie rejestrów d2-d7 pobierz próbkę x(n), {x(n), x(n-1)} w D0, wskaźnik do bufora danych w A0 x(n-2)... h(0) * x(n) => acc0, {x(n-2), x(n-3)} => d1 h(1) * x(n-1) => acc0 h(2) * x(n-2) => acc0, {x(n-4), x(n-5)} => d0 h(3) * x(n-3) => acc0 h(4) * x(n-4) => acc0, {x(n-6), x(n-7)} => d1 h(20) * x(n-20) => acc0 save calculated sample 33

Implementacja filtru cyfrowego FIR (3) maska dla bufora danych wej. 64 słowa mac.w %d2u, %d0u, (%a0)+&, %d1, %ACC0......... <oa> = 0x50000 AND 0xFFBF => 0x50000 0xB = 1011 mac.w...(%a0)+&... <oa> = 0x50002 AND 0xFFBF => 0x50002 mac.w...(%a0)+&... <oa> = 0x5003E AND 0xFFBF => 0x5003E mac.w...(%a0)+&... zapis nowej próbki pod adres 0x3E <oa> = 0x50040 AND 0xFFBF => 0x50000 mac.w...(%a0)+&... <oa> = 0x50002 AND 0xFFBF => 0x50002 mac.w...(%a0)+&... A0+0x00 Sample 1 Sample 2 64 słowa A0=0x50000 #0xFFBF, %mask Sample n-1 A0+0x40 15 0 34