[POLICZ OCZKA ;-)] FinBoard Analog Devices: procesory DSP z rodziny Blackfin w aplikacjach wideo

Inżynierowie firmy Analog Devices podczas opracowywania budowy rdzeni Blackfin wykorzystali doświadczenia Intela, dzięki czemu w prezentowanych mikroprocesorach wyraźnie widać podobieństwa do mikroprocesorów bazujących na intelowskiej MSA (Micro Signal Architecture). Rdzenie Blackfin mają architekturę von Neumanna (co w dużym skrócie oznacza, że dane aplikacji i program są przechowywane w tej samej pamięci), operują na słowach danych i instrukcjach o długości 32 bitów. Zintegrowane przy rdzeniu bloki MAC (Multiply and ACcumulate) są przystosowane do wykonywania obliczeń na słowach 16-bitowych, a współpracujące z nimi rejestry ALU mają długość 40 bitów każdy. Niektóre wersje mikroprocesorów Blackfin zostały wyposażone w inne ALU i nieco inaczej skonfigurowane bloki MAC, co wiąże się z ich określonym przez producenta zorientowaniem aplikacyjnym.

Stosowanie mikroprocesorów Blackfin w „dużych” aplikacjach, bazujących na oprogramowaniu działającym pod opieką systemów operacyjnych umożliwia wbudowany w nie blok MPU (Memory Protection Unit) lub – w niektórych typach – MMU (Memory Management Unit), które obsługują m.in. translację adresów, co pozwala na wirtualizację dostępu do pamięci przydzielonej poszczególnym zadaniom wykonywanym quasi-równolegle przez system operacyjny. W zależności od wymogów systemu i aplikacji, rolę pamięci systemowej prezentowanych mikroprocesorów może spełniać zewnętrzny SRAM via kontroler SMC (Static Memory Controller) lub DMC (Dynamic Memory Controller), który jest przystosowany do obsługi standardowych pamięci SDRAM-DDR2 oraz SDRAM-LPDDR. Obydwa interfejsy zewnętrznych pamięci mają 16-bitowe porty danych.

Elementy wyposażenia zestawu FinBoard:

  • płytka zestawu z mikroprocesorem Blackfin BF609
  • debugger JTAG Analog Devices ICE-100B
  • karta 2 GB microSD
  • zasilacz sieciowy 5V
  • kable HDMI i USB
  • trójnóg fotograficzny ze śrubą mocującą do płytki FinBoard
  • pięć kostek do gry
  • dwie 6-mesięczne licencje na pakiet CrossCore Embedded Studio
  • dokumentacja i programy przykładowe (częściowo do pobrania ze strony http://www.finboard.org)

Wszystkie mikroprocesory z prezentowanej rodziny wyposażono w podstawowe peryferia komunikacyjne, jak interfejsy UART, SPI, I2C, a także natywne opracowania Analog Devices – interfejsy: SPORT (Synchronous serial PORT – dupleksowy port cyfrowego audio) oraz PPI (Parallel Port Interface). W zależności od typu mikroprocesora liczba wbudowanych interfejsów komunikacyjnych zmienia się, podobnie jak pojemność wewnętrznych pamięci cache oraz buforów L1.

Wszystkie wymienione w tabeli mikroprocesory są dwurdzeniowe, dwa najsilniejsze modele (ADSP-BF608/609) wyposażono w wyspecjalizowane bloki wspomagające obróbkę i analizę sygnałów wideo:

  • PIXC (Pixel Compositor) – koprocesor graficzny realizujący różne operacje na jednym lub dwóch strumieniach danych obrazu, m.in. nakładanie obrazów na siebie z regulowanym współczynnikiem przeźroczystości, konwersję przestrzeni kolorów, powiększanie fragmentów obrazu itp.,
  • PVP (Pipelined Vision Processor) – koprocesor obliczeniowy przystosowany do obróbki i analizy obrazów monochromatycznych, wyposażony w mechanizmy wspomagające rachunki falkowe. Składa się z 8 torów funkcjonalnych, za pomocą których można skalować obraz, tworzyć jego histogram, wkrywać i śledzić obiekty itp.

Rys. 1. Schemat blokowy ADSP-BF60x

Obydwa bloki mogą się komunikować z otoczeniem mikroprocesorów poprzez interfejsy PPI, komunikację wewnątrz mikrokontrolera zapewnia kanał DMA. Schemat blokowy mikroprocesorów ADSP-BF60x pokazano na rysunku 1, a na rysunku 2 jest widoczny schemat blokowy rdzenia Blackfin.

Rys. 2. Schemat blokowy rdzenia Blackfin

O autorze