ł ó · 2015-12-04 · bitowa, bogate narzędzia projektowe . 1982 r. – HD61810 (prod. HITACHI)...

Preview:

Citation preview

Jan H. Schmidt

Wydział Elektroniki i Informatyki

Katedra Systemów Elektroniki Morskiej

Procesory sygnałowe (ang. Digital Signal Processors) - klasa specjalizowanych procesorów dedykowanych do cyfrowego przetwarzania sygnałów

Niezbędne w systemach czasu rzeczywistego (obliczenia on-line) przetwarzania sygnałów akustycznych, obrazów i różnych sygnałów szybkozmiennych.

lata 80-te: rozwój procesorów sygnałowych spowodował rewolucję w cyfrowym przetwarzaniu

sygnałów

1978 r. – S2811 (prod. AMI) 16 bitowy, cykl rozkazowy 300ns, układ mnożący,

1979 r. - Intel 2920

pojedynczy chip = procesor, pamięć EPROM i RAM, przetworniki analogowo-cyfrowe i cyfrowo-analogowe, układ arytmetyczno-logiczny, cykl rozkazowy 400ns

1982 r. – TMS32010 (prod. Texas Instruments)

pionier procesorów DSP : cykl rozkazowy 200ns, architektura harwardzka, dane 16 bitowe, arytmetyka 32 bitowa, bogate narzędzia projektowe

1982 r. – HD61810 (prod. HITACHI) pierwszy zmiennoprzecinkowy procesor sygnałowy, cykl rozkazowy 250ns, niestandardowy format liczb (12-bitowa mantysa, 4-bitowa cecha) spowodował małą jego popularność.

1985 r. – DSP-32 (prod. Bell Labs) pierwszy zmiennoprzecinkowy procesor sygnałowy w którym zastosowano format liczb zgodny ze standardem IEEE 32-bit (23-bitowa mantysa, 8 bitowa cecha).

1985 r. – TMS32020 (prod. Texas Instruments) II generacja procesorów – zwiększona liczba rejestrów pomocniczych, większa ilość pamięci RAM.

1986 r. – TMS320C25 (prod. Texas Instruments) wersja CMOS procesora TMS32020

1988 r. - TMS320C30 (prod. Texas Instruments) procesor zmiennoprzecinkowy.

1988 r. - TMS320C40 (prod. Texas Instruments) procesor zmiennoprzecinkowy z mechanizmami umożliwiającymi budowę układów wieloprocesorowych.

Przetwarzanie strumieniowe

Przetwarzanie blokowe

Texas Instruments

Texas Instruments

Texas Instruments

Texas Instruments

Texas Instruments

Texas Instruments

-- filtracja w opraciu o FIR,

-- filtracja w opraciu o IIR,

-- splot / korelacji wzajemnej,

-- transformacji Fouriera (1D, 2D),

-- mnożenie wektorowe i macierzowe.

Ponieważ operacja arytmetyczna MAC stanowi elementarną operację arytmetyczną większości algorytmów obliczeniowych została ona zaimplementowana jako instrukcja procesora sygnałowego ( wersje: zmiennoprzecinkowa, stałopozycyjna).

Szybkość wykonania operacji MAC jest wymiernym miernikiem szybkości procesora sygnałowego.

Procesor sygnałowy charakteryzuje się skróconym czas wykonania

operacji arytmetycznej MAC - do kilku/kilkunastu ns

Architektura harwardzka - architektura dostępu do pamięci (rozdzielona pamięć programu i danych

- możliwość równoczesnego odczytu instrukcji oraz danych, realizacja potokowości

RAM

PROGRAMU

CPU

ADRES

DANE

RAM

DANYCH

ADRES 2

DANE 2

RAM

(PROGRAMU

I DANYCH)

CPU

ADRES

DANE

Harvard von Neumann

Pierwszy procesor sygnałowy o architekturze harwardzkiej:

TMS32010 (prod. Texas Instruments – 1982 r.)

Pierwszy komputery o architekturze harwardzkiej:

MARK1 (Harvard University – 1944r.)

ENIAC (University of Pensylvania – 1946r.)

Zmodyfikowana architektura harwardzka (znana również jako architektura mieszana) - łączy w sobie cechy architektury harwardzkiej i architektury von Neumanna.

Oddzielone zostały pamięci danych i rozkazów, lecz wykorzystują one wspólne magistrale danych i adresową. Architektura ta umożliwia łatwe przesyłanie danych pomiędzy rozdzielonymi pamięciami.

Dla osiągnięcia najlepszej wydajności (skrócenie czasu wykonywania instrukcji) stosuje się zwielokrotnianie magistral danych. Umożliwia jednoczesne pobranie operandów do wykonania operacji mnożenia lub dodawania.

Proste i skomplikowane jednostki arytmetyczno-logiczne (ALU)

-wprowadzono ze względu na potrzebę realizacji wielu prostych przygotowawczych operacji logicznych ( algebra boolowska)/ arytmetycznych (dodawanie , odejmowanie),

-generują standardowe bity statusowe (flagi przepełnienia, flagi zera, bity przeniesienia),

-zapewniają elastyczne mechanizmy pobierania danych wejściowych i przesyłania wyników operacji (rejestry, dane z magistrali zewnętrznych i wewnętrznych),

-podstawa uzyskania maksymalnej elastyczności kodu.

Architektura VLIW (ang. Very Long Instruction Word)

SIMD (ang. Single Instruction, Multiple Data)

Wprowadzenie instrukcji skoku

wykonywanych z opóźnieniem w celu nieprzerwania pracy potokowej w przypadku skoku – wada: zwiększona pojemność kodu.

Zwiększenie liczby rejestrów

pełniących funkcję równorzędnych akumulatorów.

Wprowadzenie dodatkowych portów równoległych lub szeregowych

umożliwiających budowę układów wieloprocesorowych.

Wyposażenie procesorów sygnałowych w układy wspomagające emulację ich pracy (JTAG - ang. Joint Test Action Group)

standard IEEE 1149.1, określający protokół komunikacji szeregowej wykorzystywanej do łączności z badanym układem.

Wprowadzenie pamięci podręcznej „cache”.

Rozbudowane/ wielokanałowe układy bezpośredniego dostępu do pamięci (DMA).

Umieszczenie tablic współczynników w pamięci ROM.

Rozwój oprogramowania narzędziowego – wspomagającego tworzenie oprogramowania dla procesorów w językach wysokiego poziomu (C/C++).

UWAGA: Zaburzona kolejność wykonywania napisanych

linii kodu

O finalnej kolejności decyduje kompilator ściślej optymalizator

Zaburzenie pracy potoku

Obsługa przerwań

Instrukcja skoku

- wymaga przeczyszczenia potoku / wycofanie rozkazów następujących po instrukcji skoku.

- rozpoczęcie zapełnianie potoku od początku od adresu do którego następuje skok.

Wprowadza opóźnienia w wykonywaniu programu

Adresowanie bufora cyklicznego - splot, korelacja

Adresowanie bitowo-rewersyjne - FFT

-zawierają współczynniki kompresji według zasady A/,

- zawierają tablice sinusów i cosinusów dla algorytmu FFT

- zawierają tablice sinusów i cosinusów dla modulacji/demodulacji

Texas Instruments

C671x / C621x

.L1/.L2 .M1/.M2 .S1/.S2 .D1/.D2

.L1/.L2

32/40-bit arithmetic /compare operations

32-bit logical operations

Normaization / bit count operations

Saturated arithmetic for 32/40-bit operations

.M1/.M2

16 bit x 16bit = 32 bit

.S1/.S2

32-bit arithmetic , logic and bit field operations

32/40-bit shifts

Branches

Register transfers to and from control registers

Constant generation

.D1/.D2

Load and store with 5-bit constant offset

Load and store with 15-bit constant offset

32-bit additions/subtractions

Linear and circular address calculation

- Szybka pamięć podręczna (Cache), - Szybka pamięć statyczna, - Rejestry, - Obsługa przerwań, - DMA (ang. Direct Memory Access), - Timery - Elastyczne magistrale danych ( External Memory InterFace - EMIF) obsługa szerokiej gamy układów pamięciowych oraz urządzeń zewnętrznych {SRAM, SDRAM, DRAM, FIFO, FLASH, ... }

- Synchroniczne interfejsy szeregowe, - Asynchroniczne interfejsy szeregowe (UART), - Ethernet (10/100/1000Mb/s), - Host porty, - I2C, - CAN 2.0B - Porty bitowe I/O, - Porty równoległe , - Hyperlink, - PCI, PCI Express, - SRIO,

Arytmetyka stałopozycyjna MIPS - million instructions per second

Arytmetyka zmiennoprzecinkowa MFLOPS - million floating point operations per second

Kod uzupełnień do 2 (pol. U2 , ang. 2C - Two's Complement) liczby 8-/16-/32-/64- bitowe np.

0000 1100 (bin) = 12 (dec)

0*(-2^7)+0*(2^6)+0*(2^5 )+0*(2^4)+ 1*(2^3)+ 1*(2^2)+ 0*(2^1)+ 0*(2^0) = 12

0 +0 +0 +0 +8 +4 +0 +0 = 12

1111 0100 (bin) = -12 (dec) 1*(-2^7)+1*(2^6)+1*(2^5 )+1*(2^4)+ 0*(2^3)+ 1*(2^2)+ 0*(2^1)+ 0*(2^0) =- 12

-128 +64 +32 +16 +0 +4 +0 +0 = -12

Format ułamkowy Q15, Q31 umożliwia zapis liczy w zakresie <-1, 1)

położenie punktu dziesiętnego (kropki) jest stałe, niezależne od wielkości liczb

0110 0000 0000 0000 (bin) = +0.75 (dec)

(0110 .... = 0*(-1)+1*(0.5)+1*(0.25)+0*(0.125)+.... =0.75)

0000 0000 0000 0001 (bin) = +0.000030517 (dec)

1010 0000 0000 0000 (bin) = -0.75 (dec)

Inne: Q3.12

Dostępne są rozkazy realizujące arytmetykę umożliwiająca wykonywanie obliczeń zarówno na liczbach w kodzie U2 jak i kodzie ułamkowym.

Arytmetyka z przesunięciem cyklicznym („z zawijaniem” – wrap around arithmetic),

Arytmetyka z nasycaniem (saturation arithmetic).

Liczba zmiennoprzecinkowa o pojedynczej precyzji [SP single-precision (32-bit) ]

Akty standaryzacji:

-IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985).

Liczba zmiennoprzecinkowa o podwójnej precyzji [DP double-precision (64-bit) ]

Akty standaryzacji:

-IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 854).

S (ang. sign) - znak liczby, 1 lub -1

M (ang. mantissa) - znormalizowana mantysa, liczba ułamkowa

E (ang. exponent) - wykładnik, liczba całkowita

Dynamika:

SP:

Min. 1.175494351e–38F Maks. 3.402823466e+38F

DP:

Min: 2.2250738585072014e–308 Maks. 1.7976931348623158e+308

- niezbędna kontrola obcinania i przepełnień (potrzeba samodzielnej operacji normalizacji i skalowania),

- zapewnia większą rozdzielczość w stosunku do systemu zmiennoprzecinkowego,

- większa szybkość układowa,

- niższe koszty systemu,

Zalety:

- ułatwia proces projektowania systemu ze względu na brak konieczności analizy algorytmów i danych wejściowych ze względu na obcinanie i przepełnienie,

- umożliwia użycie języków programowania wyższego poziomu,

-zapewnia większy zakres dynamiczny,

Wady:

- większy pobór mocy – układy realizujące obliczenia zmiennoprzecinkowe wymagają dodatkowo automatycznej normalizacji oraz skalowania,

- mniejsza szybkość obliczeń,

- precyzja liczby zmiennoprzecinkowej – ta sama liczba bitów użytych do reprezentacji liczby zarówno dużej jak i małej

- droższe rozwiązania sprzętowe.

• Motorola -> Freescale

• Lucent -> Agere -> LSI

C2000 - High Performance 16-/32-bit Controllers

C5000 - Power-efficient DSPs

C6000 - High Performance DSPs

DaVinci - Digital Media Processors

- stałopozycyjne 16-/32-bitowe kontrolery,

- wydajność do 150 MIPS,

- 32 × 32-bit stałopozycyjne MAC (jednocyklowe),

- 16 × 16-bit stałopozycyjne MAC (jednocyklowe).

Interfejsy: - przetworniki A/D i D/A

- PWM (Pulse Width Modulation)

- SCI / UART

- SPI

- CAN 2.0B

- I2C

Aplikacje: - cyfrowe sterowanie silników/mocy,

- cyfrowe układy zasilania,

- zaawansowane czujniki,

- motoryzacja,

- medycyna,

- miernictwo.

- stałopozycyjne (16-bitowe) ,

- wydajność do 600 MIPS,

- 1 lub kilka rdzeni w pojedynczym układzie .

Najbardziej efektywne procesory pod względem poboru mocy (3 tryby poboru mocy).

Idealne do zastosowań w urządzeniach zasilanych bateryjnie:

- tryb czuwania: ok. 0.12 mW,

- tryb pełnej pracy: 40mW.

TMS320C55xx

TMS320C54xx

Aplikacje:

- przenośne, zminiaturyzowane cyfrowe systemy audio (MP3/AAC),

- centrale telefoniczne,

- bezprzewodowe zestawy samochodowe,

- przenośne urządzenia medyczne (np. glukometry, rejestratory pracy serca – Holter)

- telefony bezprzewodowe VoIP/DECT,

- czytniki linii papilarnych,

- odbiorniki GPS

Przenośne urządzenia komunikacyjne:

- telefony komórkowe (GSM / UMTS)

- pagery

- modemy

C62xx – 32-bitowe stałopozycyjne procesory

C67xx – 32-bitowe zmiennoprzecinkowe procesory

C64xx – 32-/64-bitowe stałopozycyjne procesory

C66xx – wielordzeniowe zmiennoprzecinkowe procesory

C62xx – 32-bitowe stałopozycyjne procesory

- wydajność do 2400 MIPS, 300MHz

- 600 MMACS

- wykonuje do 8 32-bitowych instrukcji na 1 cykl zegarowy

VelociTI™ Advanced Very-Long-Instruction-Word (VLIW) C62x™ DSP Core

8 niezależnych jednostek funkcjonalnych (VelociTI™) :

- 6 ALU (32-/40-Bit)

- Dwa układy mnożące (wykonujące: dwa mnożenia 16 x 16-bit (32-bitowy wynik) w jednym cyklu zegarowym)

- 32 32-bitowe rejestry ogólnego przeznaczenia (GP)

C67xx - 32bitowe zmiennoprzecinkowe procesory

- wydajność do 2400/1800 MIPS/MFLOPS, 300MHz

- 600 MMACS

- wykonuje do 8 32-bitowych instrukcji na 1 cykl zegarowy

Advanced Very Long Instruction Word (VLIW) TMS320C67x™ DSP Core

8 niezależnych jednostek funkcjonalnych (VelociTI™) : - 2 ALU (Fixed-Point)

-4 ALUs (Floating-/Fixed-Point)

-2 Multipliers (Floating-/Fixed-Point)

32 32-bitowe rejestry ogólnego przeznaczenia (GP)

Sprzętowa realizacja arytmetyki zmiennoprzecinkowej: Single-Precision (32-bit) / Double-Precision (64-bit).

C64xx – 32-/64-bitowe stałopozycyjne procesory Wydajność do 9600 MIPS/MMACS (16-bit), 1.2 GHz

Jednostka mnożąca (.M) wykonuje jedną z poniższych operacji w 1 cyklu zegarowym : - Mnożenie 32 x 32 bit, - Dwa mnożenia 16 x 16 bit, - Dwa mnożenia 16 x 32 bit, - Cztery mnożenia 8 x 8 bit, - Cztery mnożenia 8 x 8 bit (+dodawanie) - Cztery mnożenia 16 x 16 bit (+ dodawanie/ odejmowanie) - realizacja mnożeń na liczbach zespolonych

C66xx – wielordzeniowe zmiennoprzecinkowe procesory

- Interfejsy I2C (inter-integrated circuit bus module), - Interfejsy McBSPs (multichannel buffered serial), - 64-bitowe timery ogólnego przeznaczenia (konfigurowalne jako dwa 32-bitowe), - 16-bitowe / 32-bitowe interfejsy dla procesora nadrzędnego (HPI16/HPI32), - Interfejs PCI (peripheral component interconnect),

- 16-pin general-purpose input/output port (GPIO) with programmable interrupt/event generation modes,

- Kontroler Ethernet (10/100/1000 bit) -media access controller (EMAC), moduł MDIO (management data input/output) – jako cześć EMAC – pozwala obsłużyć do 32 urządzeń fizycznych,

- Elastyczny interfejs pamięci zewnętrznej (32-bit EMIF / 64-bit EMIFA), z obsługą urządzeń synchronicznych i asynchronicznych, np. obsługujący pamięci 32-bitowe DDR2 SDRAM -Viterbi Decoder co-processor (VCP) -Turbo Decoder co-processor (TCP)

Aplikacje: Infrastruktura komunikacji bezprzewodowej - anteny, - stacje bazowe, - bramy dostępowe. Infrastruktura komunikacji przewodowej - telefony, bramki VoIP (ang. Voice over Internet Protocol), - centrala abonencka PBX (ang. Private Branch Exchange). Cyfrowe systemy video - konferencyjne, - obserwacji / inwigilacji, - kodery / dekodery, - routery szerokopasmowe. Systemy obróbki obrazu / sygnałów - medyczne, - inspekcyjne, - systemy obronne (wojsko), - radary, - sonary.

Aplikacje:

- kodowanie / dekodowanie obrazu i głosu,

- nadajniki / odbiorniki wideo,

- serwery konferencji wideo,

- systemy kodowania i miksowania wideo wysokiej rozdzielczości (High-Definition),

- bezprzewodowe stacje bazowe,

- HD Radio,

- laboratoria obróbki i druku zdjęć,

High-Performance Digital Media Processor (TMS320DM642) Wydajność do 5760 MIPS/MMACS, 720-MHz

Wykonuje 8 32-bitowych instrukcji na cykl zegarowy

Pełna kompatybilność softwareowa z C64x™

VelociTI.2™ Extensions to VelociTI™ Advanced Very-Long-Instruction-Word (VLIW) TMS320C64x™ DSP Core

8 niezależnych jednostek funkcjonalnych (VelociTI.2™) : - 6 ALU (32-/40-Bit) (każdy realizuje arytmetykę 32-bitową (1x), 16-bitową (2x),

8-bitową w jednym cyklu zegarowym)

- Dwa układy mnożące (wykonujące: cztery mnożenia 16 x 16-bit (32-bitowy wynik) lub osiem mnożeń 8 x 8-bit (16-bitowy wynik) w jednym cyklu zegarowym)

64 32-bitowe rejestry ogólnego przeznaczenia (GP)

Kompresowalne instrukcje redukujące wielkość kodu

Aplikacje: - wysoko-wydajne aplikacje kodowania i dekodowania wideo, - telefony wideo, - IP set-top box, - systemy bezpieczeństwa - wideo, - samochodowe systemy informacyjne, - aparaty i kamery cyfrowe, - przenośne urządzenia wideo.

Starter Kits

Evaluation Modules (EVM)

Recommended