Co może zrobić dsPIC, czego nie potrafi skromny mikrokontroler PIC?


10

Do tej pory nie korzystałem z układu DSP. Wiem tylko, że ich architektura jest taka, że ​​mogą wykonywać obliczenia dość szybko, zwykle w ciągu cyklu zegarowego, mają instrukcje wielokrotnego gromadzenia w zestawie instrukcji i mają DMA, więc procesor nie musi tracić cennego czasu na przenoszenie danych na około. Myślę, że jest w tym coś więcej, ale to kilka podstawowych kwestii.

Widzę, że Microchip ma dsPIC, który jest ich linią układów DSP. Czy nie możemy po prostu użyć PIC18 lub PIC32, który również ma wbudowane multiplikatory do DSP? Czym różni się dsPIC od zwykłego PIC?

Moje główne pytanie brzmi: dlaczego potrzebujemy mieć coś osobnego i wyraźnego zwanego układem DSP i nie integrować możliwości obliczania jednostek zmiennoprzecinkowych o wysokiej precyzji na wszystkich mikrokontrolerach? Z pewnością dzięki technologiom procesowym, które mamy teraz, nie powinno to zajmować dużo miejsca.

Ponadto, skąd mam wiedzieć, że muszę używać układu DSP w moim projekcie zamiast normalnego mikrokontrolera>


1
Istnieją dobre odpowiedzi na podobne pytanie tutaj: electronics.stackexchange.com/questions/3067/…
David

Odpowiedzi:


3

Zasadniczo „DSP ...” oznacza „bardziej odpowiednią moc i / lub bardziej odpowiedni sprzęt w momencie wprowadzenia produktu ”.
Uogólnione procesory zwykle nadążają za starymi specjalistycznymi urządzeniami.
DSPIC ma co najmniej 10 lat - Olin będzie wiedział.

[Pozycje w nawiasach odnoszą się do niektórych przykładów DSPIC - nie są wyczerpujące].

W produktach DSP spodziewana jest pewna mieszanka:
oczekuj takich rzeczy, jak przesuwaki beczek,
szerokie szybkie rurociągi i szybkie czasy wykonywania pojedynczego cyklu,
szerokie instrukcje dla pojedynczego cyklu,
DMA [6 lub 8 kanałów, podwójny bufor RAM] duże zakresy adresowania pamięci liniowej [4 program Mword , Dane 64 kB] specjalistyczne funkcje zorientowane na arytmetykę
Może:
specjalistyczne urządzenia peryferyjne, takie jak sterowanie silnikiem,
sprzęt dla kilku różnych standardów komunikacyjnych [CAN, IIC, UART, IIS, AC97, ...] głębsze niż zwykle bufory com [4 bajty] szybciej i / lub szerszy niż zwykle ADC [2 Msp, 10 lub 12 bitów]

Większość z nich znajdziesz w rodzinie DSPIC - a coraz częściej w rodzinach procesorów gp.
W skrajnych przypadkach otrzymujesz mikrokodowanie użytkownika i nie tylko.


1
O ile dobrze pamiętam, po raz pierwszy usłyszałem o projektowaniu dsPIC w 1999 r. Pierwsze próbki zostały wydane na początku 2002 r. Z częściami produkcyjnymi pod koniec 2002 r. Lub na początku 2003 r. Nadal mam gdzieś ręcznie splatany 30F2010 w 28-pinowym ceramicznym pakiecie DIP, który został przypadkowo oznaczony jako 30F6010. Działał tylko przy 1/3 ostatecznej pełnej prędkości i został ręcznie oznaczony jako numer 55 lub coś w tym rodzaju.
Olin Lathrop

1
Mogą być również taktowane do 200 lub 260 MHz, podczas gdy linia PIC obsługuje tylko do 4 do 20 MHz. Być ponad 10 razy szybszym, zdecydowanie warto rozważyć.
Havenard,

1
@Havenard - Zwracając uwagę, że jest to pytanie z 2014 roku: Wspomniał o PIC32 jako możliwej alternatywie dla DSPIC. PIC32MX 2007 ma Cmax (maksymalna częstotliwość taktowania) 80 MHz. PIC32MZ 2013 ma Cmax 252 MHz. || Przydatne, choć niepełne porównanie tutaj {Wikipedia}.
Russell McMahon,

11

Niektóre zalety dsPIC w porównaniu do wcześniejszych architektur PIC, takich jak rodziny PIC 16 i 18:

  1. 16-bitowe ścieżki danych i ALU, zgodnie z 8.

  2. Możliwość bezpośredniego adresowania (późniejsze wersje obu architektur rozszerzyły to na różne nieprzyzwoite sposoby) więcej pamięci danych. Podstawowy PIC 16 może adresować 128 bajtów bezpośrednio, 512 z bankowością. Nowsze PIC 16F1xxx mają rozszerzoną bankowość, aby umożliwić adresowanie większej ilości pamięci danych. Architektura PIC 18 jest ograniczona do 4k bajtów. Architektura dsPIC może adresować bezpośrednio 64k bajtów lub 32k 16-bitowych słów, choć z różnych powodów tylko połowa z nich jest dostępna dla RAM w architekturze podstawowej. Rozszerzył to system bankowy w niektórych późniejszych modelach.

  3. Szybciej. Pierwotny model 30F mógł działać przy 30 MIP, przy czym 40 MIP jest teraz częścią normy. Nowa seria E może obsłużyć do 70 MIP, chociaż istnieje więcej powodów, dla których może utknąć w oczekiwaniu na coś niż wcześniejsze modele wolniejsze. Są nadal średnio znacznie szybsze.

  4. Możliwości DSP. Silnik DSP ma dwa 40-bitowe akumulatory i zwykły sprzęt do wykonywania sekwencji operacji MAC na macierzach po jednym MAC na cykl instrukcji (patrz odpowiedź Dave'a Tweeda). MAC i powiązane instrukcje nakładają się na indeksowanie macierzy i zakończenie pętli na rzeczywistą wielokrotność akumulacji.

  5. 15 użytecznych programowo 16-bitowych „rejestrów roboczych” zamiast pojedynczego 8-bitowego rejestru W 8-bitowej architektury PIC.

  6. Manetka beczkowa.

  7. Pojedynczy cykl 16x16 -> 32-bitowy pomnożenie.

  8. Podział sprzętu. Operacja 32 div 16 -> 16 bit zajmuje 18 cykli.

  9. Wiele instrukcji z 3 operandami. Na przykład możesz dodać zawartość dwóch działających rejestrów i umieścić wynik w trzecim, wszystko w jednym cyklu. Dotyczy to większości operacji matematycznych, logicznych i zmianowych.

  10. Ogólnie bardziej regularny i symetryczny zestaw instrukcji.

  11. Przerwy wektorskie. PIC 16 ma jeden wektor przerwań, a PIC 18 ma dwa. Na 16-bitowych częściach (PIC 24, dsPIC 30 i 33) każde źródło przerwań ma swój własny wektor. Zmniejsza to opóźnienia w procedurze przerwań, ponieważ nie musi on spędzać cykli na ustalaniu, które przerwanie należy wykonać.

    Pozwala to również na lepszą architekturę oprogramowania. Procedura przerwania dla określonego urządzenia peryferyjnego może znajdować się w tym samym module, co inny kod obsługujący to urządzenie peryferyjne, zamiast konieczności posiadania jednej globalnej procedury przerwania.

  12. Różne inne zalety wynikające z szerszej architektury.


8

Zazwyczaj kluczową cechą wyróżniającą DSP w porównaniu z procesorem ogólnego przeznaczenia jest to, że DSP może wykonywać pewne operacje przetwarzania sygnałów przy niewielkiej liczbie, jeśli w ogóle, cykli procesora zmarnowanych na instrukcjach, które nie obliczają wyników.

Jedną z najbardziej podstawowych operacji w wielu kluczowych algorytmach DSP jest operacja MAC (multiply-akumulate), która jest podstawowym krokiem stosowanym w macierzach punktowych i krzyżowych, filtrach FIR i IIR, a także FFT. DSP zazwyczaj ma organizację rejestru i / lub pamięci oraz ścieżkę danych, która pozwala mu wykonywać co najmniej 64 operacje MAC na unikalnych parach danych z rzędu bez marnowania zegarów na obciążenie pętli lub ruch danych. Procesory ogólnego przeznaczenia zwykle nie mają wystarczającej liczby rejestrów, aby to osiągnąć bez użycia dodatkowych instrukcji do przenoszenia danych między rejestrami a pamięcią.


1
+1 za nacisk na operacje MAC. Są to bez wątpienia rdzeń większości operacji DSP.
Matt Young,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.