Atari Falcon 030 posiada bardzo ciekawe rozwiązanie, mianowicie oprócz głównego procesora, którym jest Motorola 68030 16MHz posiada także procesor DSP 56001, taktowany zegarem 32MHz. Charakteryzuje się on mocą obliczeniową ponad 4 razy większą niż główny procesor, przynajmniej w teorii. Tak, w teorii, bowiem w praktyce DSP potrafi być jeszcze szybszy.
Dobrym przykładem są tu obliczenia arytmetyczne: procesor 68030 16MHz potrzebuje 28 cykli zegara, aby dokonać mnożenia dwóch liczb 16-bitowych z wynikiem 32-bitowym. Dla porównania DSP 56001 wykonuje w 2 cyklach zegara mnożenie dwóch liczb 24-bitowych z wynikiem 48bit mogąc w tym samym czasie dokonać operacji odejmowania lub dodawania owego iloczynu z precyzją... 56bit!
Oprócz wielokrotnie szybszych obliczeń przy dużo większej precyzji DSP 56001 pozwala na wykonanie do 3 rozkazów procesora w tym samym momencie. Obrazuje to poniższy przykład:
mpy +x0,y1,a x:(r1),x0 a,y:(r6)+
* mpy +x0,y1,a - dokonuje mnożenia pomiędzy dwoma 24-bitowymi rejestrami (y1 i x0), a następnie wynik jest dodawany do 56-bitowego rejestru a.
* x:(r1),x0 - w obrębie pamięci X (wyodrębniony obszar pamięci) wartość (24-bit) komórki pamięci o adresie zawartym w rejestrze r1 jest odczytywana do rejestru x0.
* a,y:(r6)+ - natomiast zawartość rejestru a jest kopiowana do obszaru pamięci Y pod adres wskazany rejestrem r6, a następnie zawartość rejestru r6 jest incrementowana.
Dodatkowym atutem jest fakt, że ta operacja zajmuje procesorowi DSP 56001 zaledwie 2 cykle zegara!
Operacje typu: move jest wykonywana w 1 cyklu zegara, i w tym czasie pozwala na równoległe wykonanie dwóch operacji, co obrazuje poniższy przykład:
move x:(r1),x0 a,y:(r6)+
Niestety, nie ma róży bez kolców - DSP 56001 w Falconie ma bardzo ograniczone pole do działania. Dysponuje obszarem pamięci zaledwie 96kB RAM. Rekompensuje to nieco fakt, że jest to pamięć, która pracuje z tą samą prędkością co DSP, natomiast komunikacja z głównym procesorem jest dostępna za pomocą kanałów DMA jak i poprzez "handshakeing".
W wypadku komunikacji poprzez kanały DMA, DSP ma możliwość komunikacji np. z przetwornikami A/C i C/A (które Atari Falcon posiada standardowo), umożliwiając np. obróbkę w czasie rzeczywistym dźwięku, wszelkiego rodzaju efekty dźwiękowe z precyzją 50kHz, z rozdzielczością 16bit (oczywiście dwukanałowo, stereofonicznie).
Oczywiście dzisiaj tego typu możliwości nie są coś szczególnym, jednak jeżeli weźmiemy pod uwagę, że każdy seryjny Falcon potrafił to już w roku 1993 (!!!), kosztując tym samym tyle co zwykły markowy PC, to komputer ten na prawdę budzi wielki szacunek.
Powyższe rozwiązanie stosuje np. program o nazwie WinRec. Podłączamy mikrofon, i za pomocą wirtualnych potencjometrów możemy filtrować w czasie rzeczywistym dźwięk, regulując płynnie poziom dźwięków o danej częstotliwości od najniższych basów, po najwyższe soprany.
Ale najbardziej szokujący jest dla mnie efekt polegający na symulacji "taśmy magnetofonowej" - przesuwając wirtualny suwak w dół uzyskujemy efekt taki, jaki byśmy uzyskali odtwarzając dźwięk z taśmy z niższą prędkością, analogicznie przesuwając suwak w górę uzyskujemy przyspieszenie. Niby nic szczególnego, ale... to się odbywa w czasie rzeczywistym! Normalnie przyspieszanie i spowalnianie odtwarzania taśmy wydłużyłoby lub skróciło w czasie odtwarzanie. A tutaj to jest realizowane w tym samym czasie!
Oczywiście efekty typu echo, czy efekt "mówienia przez rurę" są dostępne.
Dzięki DSP 56001 standardowy Falcon 030 16MHz, potrafi odtwarzać pliki muzyczne MP2 z obciążeniem procesora poniżej... 1% czasu procesora.
Dzięki DSP 56001 standardowy Falcon 030 16MHz (odpowiednik 386 16MHz) potrafi odtwarzać pliki MP3 z częstotliwością np. 44kHz !!! Wprawdzie angażowana jest do tego niemalże pełna moc procesora, jednak komputer tej samej klasy co 386 16MHz daje radę.
Obecnie w dobie kart turbo, np. z procesorami 68060, które są szybsze od DSP, znaczenie tego ostatniego zostało ograniczone głównie do obróbki dźwięku, ale jest to znaczące - dla porównania Falcon z procesorem 68060 66MHz (odpowiednik Pentium 66MHz) bez wsparcia DSP angażuje 65% mocy procesora do odtwarzania plików MP3, natomiast ze wsparciem DSP potrafi tego dokonać, bedąc obciążonym zaledwie w ok. 8-9% czasu procesora.
Ale DSP to nie tylko obróbka dźwięku - od dawna był wykorzystywany przez procedury dekodujące animacje w formacie MPG czy też do dekodowania plików JPG.
Również produkcje demoscenowe wykorzystywały DSP np. do obliczeń związanych z efektami wektorowymi 3D, widać to na przykładzie takich produkcji jak: "Entract" grupy EXA, "Delta" grupy FUN czy też "Sonolumineszenz" grupy Avena.
Komentarze