Blackfin
# Blackfin

Blackfin ist eine Mikrocontroller-Familie, deren Kern unter dem Namen Frio von den Unternehmen Analog Devices und Intel entwickelt wurde. Er ist eine Kombination aus einem 32-Bit-RISC-Prozessor und einem 16-Bit-Festkomma-DSP mit zwei MAC-Einheiten mit SIMD-Fähigkeit. Dank umfangreicher Peripherieblöcke bieten sich verschiedene Einsatzbereiche an: Multimediaanwendungen in mobilen Geräten, wie digitalen Foto- und Videokameras oder Geräten zur Musikproduktion wie der KORG Electribe 2, als auch in rechenintensiven medizinischen und industriellen Anwendungen. Im Automobilbereich findet man Blackfin-Prozessoren hauptsächlich in Fahrerassistenzsystemen und in Infotainment-Applikationen.

Die maximale Taktrate des Prozessorkerns beträgt bis zu 750 MHz, er enthält einen relativ großen internen "L1-Speicher", welcher sich auch als Cache-Speicher verwenden lässt. Das Rechenwerk (ALU) besteht aus zwei getrennten, parallelen Einheiten mit zwei 40 Bit breiten Akkumulatoren. Darüber hinaus bietet der Blackfin sogenannte „Hardwareschleifen“, mit denen Schleifen ohne Rechenzeit für den Schleifenzähler realisiert werden können. Dabei wird über einen speziellen Maschinenbefehl ein Schleifenregister („Zero-overhead Loop Registers“) mit einer Anfangs-, einer Endadresse und einem Schleifenzähler geladen. Die beliebigen Assemblerbefehle zwischen den beiden Adressangaben werden so oft durchlaufen, wie es im Schleifenregister angegeben ist, ohne dass bedingte Sprungbefehle notwendig sind. Damit ist es möglich, effizient Schleifen zu implementieren, ohne dass von der Software ein Schleifenzähler weitergezählt und nachfolgend auf Erreichen der Abbruchbedingung überprüft zu werden braucht. Dies ist insbesondere bei der Implementierung von kurzen Schleifen im Bereich der Algorithmen aus der digitalen Signalverarbeitung, wie sie typischerweise digitale Filter oder die schnellen Fourier-Transformation darstellen, ein Geschwindigkeitsvorteil. Ähnliche Befehle besitzen auch die digitalen Signalprozessoren der SHARC-Familie.

Darüber hinaus umfasst die Architektur umfangreiche Ein-Ausgabeschnittstellen wie synchrone serielle Ports, sogenannte SPORTs für den direkten Anschluss von Analog-Digital-Umsetzer und Digital-Analog-Umsetzer, UARTs, Echtzeituhr, einen SDRAM-Controller und diverse Ein-Ausgabeanschlüsse. Hervorzuheben ist dabei die synchrone, 16 Bit breite PPI-Schnittstelle, die sich zum direkten Anschluss von graphischen Displays und CMOS-Sensoren eignet. Die ständig wachsende Prozessorfamilie bietet auch Varianten mit zwei Prozessorkernen, L2-Speicher, Ethernet MAC, USB, CAN, I²C und anderen.

Als Entwicklungssystem für den Blackfin ist von Analog Device das Softwarepaket VisualDSP++ und ein proprietärer Echtzeitkernel mit der Bezeichnung VDK verfügbar. Darüber hinaus gibt es eine Portierung von μClinux samt den notwendigen Werkzeugen wie uClibc und dem GCC für den Blackfin. Als Entwicklungsschnittstelle und zum Programmieren der Hardware ist ein JTAG-Anschluss vorhanden. Linux unterstützte die Blackfin-Architektur von Kernel 2.6.22 bis 4.16.

