Informatics Science    
   
Table of contents
(Prev) BlackBerry Enterprise ServerBlender (software) (Next)

Blackfin

Blackfin
DesignerAnalog Devices
Bits32
Introduced2000
DesignRISC
Typedipak
EndiannessLittle
Registers
8 32-bit registers
Blackfin
Blackfin-processor-logo.png
ADI Blackfin Logo
Marketed byAnalog Devices
Designed byAnalog Devices
Common manufacturer(s)

The Blackfin is a family of 16- or 32-bit microprocessors developed, manufactured and marketed by Analog Devices. The family is characterized by their built-in, fixed-point digital signal processor (DSP) functionality supplied by 16-bit Multiply–accumulates (MACs), accompanied on-chip by a small and power-efficient microcontroller.[1] The result is a low-power, unified processor architecture that can run operating systems while simultaneously handling complex numeric tasks such as real-time H.264 video encoding[citation needed]. There are several hardware development kits for the Blackfin. Open-source operating systems for the Blackfin include uClinux.

Contents

Architecture details

Blackfin processors use a 32-bit RISC microcontroller programming model on a SIMD architecture, which was co-developed by Intel and Analog Devices, as MSA (Micro Signal Architecture).

The Blackfin processor architecture was announced in December, 2000 and first demonstrated at the Embedded Systems Conference in June, 2001.

The Blackfin architecture incorporates aspects of ADI's older SHARC architecture and Intel's XScale architecture into a single core, combining digital signal processing (DSP) and microcontroller functionality. There are many differences in the core architecture between Blackfin/MSA and XScale/ARM or SHARC, but the combination provides improvements in performance, programmability and power consumption over traditional DSP or RISC architecture designs.

The Blackfin architecture encompasses various CPU models, each targeting particular applications. Analog Devices keeps a comprehensive list of products. The Blackfin family is summarized in the following table.

Blackfin processor family selection table

Proc-
essor
ADSP-
Max
Clock
MHz
(Cores)
L1
Inst
SRAM
(Cache)
KB
L1
Data
SRAM
(Cache)
Scratch
KB
L2
Mem
L3
Boot
ROM
KB
Int
Flash
MB
(Serial
/Par)
(Exec-
utable)
Ext
SDRAM
(Async
/Mobile)
E
x
t

D
D
R
A
s
y
n
c
,
M
o
b
i
l
e
N
A
N
D

F
l
a
s
h
G
P
I
O
T
i
m
e
r
s
U
A
R
T
S
P
O
R
T
P
P
I
S
P
I
I
2
C
/
T
W
I
C
A
N
E
N
E
T

M
A
C
P
i
x
e
l
C
o
m
p
U
S
B

2
.
0
(
O
T
G
)
C
o
d
e

S
e
c
u
r
i
t
y
H
o
s
t
D
M
A
A
T
A
P
I
S
D
/
S
D
I
O
S
t

C
o
d
e
c
M
X
V
R
EZLITE
(EZBRD
/STAMP)
BF506F SubSet
BF50440032 (16)32 (16) 4 4----358GP, 1 WD221211------Y--BF506F (N/N)
BF504F40032 (16)32 (16) 4 44 (P)(E)---358GP, 1 WD221211------Y--BF506F (N/N)
BF506F40032 (16)32 (16) 4 44 (P)(E)---358GP, 1 WD221211------Y--BF506F (N/N)
BF518F SubSet
BF51240048 (16)64 (32) 4 32-Y(Y/Y)--408GP, 1 WD221210---Y-----BF518 (Y/N)
BF512F40048 (16)64 (32) 4 321 (S)Y(Y/Y)--408GP, 1 WD221210---Y-----BF518 (Y/N)
BF51440048 (16)64 (32) 4 32-Y(Y/Y)--408GP, 1 WD221210---Y-YY--BF518 (Y/N)
BF514F40048 (16)64 (32) 4 321 (S)Y(Y/Y)--408GP, 1 WD221210---Y-YY--BF518 (Y/N)
BF51640048 (16)64 (32) 4 32-Y(Y/Y)--408GP, 1 WD2212101--Y-YY--BF518 (Y/N)
BF516F40048 (16)64 (32) 4 321 (S)Y(Y/Y)--408GP, 1 WD2212101--Y-YY--BF518 (Y/N)
BF51840048 (16)64 (32) 4 32-Y(Y/Y)--408GP, 1 WD2212101--Y-YY--BF518 (Y/N)
BF518F40048 (16)64 (32) 4 321 (S)Y(Y/Y)--408GP, 1 WD2212101--Y-YY--BF518 (Y/N)
BF526 SubSet
BF52240064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110---YY----BF526 (Y/N)
BF52440064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110--Y(Y)YY----BF526 (Y/N)
BF52640064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD2211101-Y(Y)YY----BF526 (Y/N)
BF522C40064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110---YY--Y-BF526 (Y/N)
BF524C40064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110--Y(Y)YY--Y-BF526 (Y/N)
BF526C40064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD2211101-Y(Y)YY--Y-BF526 (Y/N)
BF527 SubSet
BF52360064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110---YY-- -BF527 (N/N)
BF52560064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110--Y(Y)YY----BF527 (N/N)
BF52760064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD2211101-Y(Y)YY----BF527 (N/N)
BF523C60064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110---YY--Y-BF527 (N/N)
BF525C60064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD221110--Y(Y)YY--Y-BF527 (N/N)
BF527C60064 (16)64 (32) 4 32-Y(Y/Y)-Y488 GP, 1 WD2211101-Y(Y)YY--Y-BF527 (N/N)
BF533 SubSet
BF53140032 (16)16 (16) 4 1-Y(Y/Y)--163 GP, 1 WD121100---------BF533 (N/N)
BF53240048 (16)32 (32) 4 1-Y(Y/Y)--163 GP, 1 WD121100---------BF533 (N/N)
BF53360080 (16)64 (32) 4 1-Y(Y/Y)--163 GP, 1 WD121100---------BF533 (N/N)
BF535EOL                        -EOL
BF537 SubSet
BF53450064 (16)64 (32) 4 2-Y(Y/N)--488 GP, 1 WD221111---------BF537 (Y/N)
BF53640064 (16)32 (32) 4 2-Y(Y/N)--488 GP, 1 WD2211111--------BF537 (Y/N)
BF53760064 (16)64 (32) 4 2-Y(Y/N)--488 GP, 1 WD2211111--------BF537 (Y/N)
BF538F SubSet
BF53853380 (16)64 (32) 4 --Y(Y/N)--543 GP, 1 WD341321---------BF538F (N/N)
BF538F53380 (16)64 (32) 4 -2 (P)(E)Y(Y/N)--543 GP, 1 WD341321---------BF538F (N/N)
BF53953380 (16)64 (32) 4 --Y(Y/N)--543 GP, 1 WD341321--------YBF???? (N/N)
BF539F53380 (16)64 (32) 4 -2 (P)(E)Y(Y/N)--543 GP, 1 WD341321--------YBF???? (N/N)
BF548 SubSet
BF54260064 (16)64 (32) 41284--Y-1528 GP, 1 WD332221-YY(Y)Y-YY--BF548 (N/N)
BF54453364 (16)64 (32) 41284--Y-15211 GP, 1 WD333222-Y-YY----BF548 (N/N)
BF54760064 (16)64 (32) 41284--Y-1528 GP, 1 WD443320-YY(Y)YYYY--BF548 (N/N)
BF54853364 (16)64 (32) 41284--Y-1528 GP, 1 WD443322-YY(Y)YYYY--BF548 (N/N)
BF54953364 (16)64 (32) 41284--Y-1528 GP, 1 WD443322-YY(Y)YYYY-YBF548 (N/N)
Dual Core BF561
BF561600(2)--644-Y(Y/N)--4812 GP, 2 WD1221000--------BF561 (N/N)

In addition to the features in the table above, all Blackfin processors have the following peripherals

  • Debug/JTAG Interface for in-system debugging
  • Real-time clock[2]
  • Internal core voltage switching regulator
  • Watchdog timer
  • Timers/PWM outputs/PWM capture ports
  • Core timer (runs at core clock speed)

Architecture features

Core features

mounted Blackfin BF535

What is regarded as the Blackfin "core" is contextually dependent.

  • For some applications, the DSP is central. It combines two 16-bit hardware MACs, two 40-bit ALUs, and a 40-bit barrel shifter. This allows the processor to execute up to three instructions per clock cycle, depending on the level of optimization performed by the compiler and/or programmer.
  • Other applications emphasize the RISC core. It includes memory protection, different operating modes (user, kernel), single-cycle opcodes, data and instruction caches, and instructions for bit test, byte, word, or integer accesses and a variety of on-chip peripherals.

The ISA also features a high level of expressiveness, allowing the assembly programmer (or compiler) to highly optimize an algorithm to the hardware features present.

Memory and DMA

The Blackfin uses a byte-addressable, flat memory map. Internal L1 memory, internal L2 memory, external memory and all memory-mapped control registers reside in this 32-bit address space, so that from a programming point-of-view, the Blackfin has a Von Neumann architecture.

The L1 internal SRAM memory, which runs at the core-clock speed of the device, is based on a Harvard Architecture. Instruction memory and data memory are independent and connect to the core via dedicated memory buses which allows for high sustained data rates between the core and L1 memory.

Portions of instruction and data L1 SRAM can be optionally configured as cache (independently).

Certain Blackfin processors also have between 64KB and 256KB of L2 memory. This memory runs slower than the core clock speed. Code and data can be mixed in L2.

Blackfin processors support a variety of external memories including SDRAM, DDR-SDRAM, NOR FLASH, NAND FLASH and SRAM. Some Blackfin also include mass-storage interfaces such as ATAPI, and SD/SDIO. They can support hundreds of megabytes of memory in the external memory space.

Coupled with the significant core and memory system is a DMA engine that can operate between any of its peripherals and main (or external) memory. The processors typically have a dedicated DMA channel for each peripheral, which enables very high throughput for applications that can take advantage of it such as real-time standard-definition (D1) video encoding and decoding.

Microcontroller features

The architecture contains the usual CPU, memory, and I/O found on microprocessors or microcontrollers. These features of enable operating systems.

  • Memory Protection Unit: All Blackfin processors contain a Memory Protection Unit(MPU). The MPU provides protection and caching strategies across the entire memory space. The MPU allows Blackfin to support many full-featured operating systems, RTOSs and kernels like ThreadX, µC/OS-II, or (noMMU) Linux. The Blackfin MPU does not provide address translation like a traditional Memory Management Unit (MMU) thus it does not support virtual memory or separate memory addresses per process. This is why Blackfin currently can not support operating systems requiring virtual memory such as WinCE or QNX. Confusingly, in most of the Blackfin documentation, the MPU is referred to as a MMU.
  • User/Supervisor Modes: Blackfin supports three run-time modes: supervisor, user and emulation. In supervisor mode, all processor resources are accessible from the running process. However, when in user mode, system resources and regions of memory can be protected (with the help of the MPU). In a modern operating system or RTOS, the kernel typically runs in supervisor mode and threads/processes will run in user mode. If a thread crashes or attempts to access a protected resource (memory, peripheral, etc.) an exception will be thrown and the kernel will then be able to shut down the offending thread/process. The official guidance from ADI on how to use the Blackfin in non-OS environments is to reserve the lowest-priority interrupt for general-purpose code so that all software is run in supervisor space. This would not be as serious a deficiency if the Blackfin had more than 9 general-purpose interrupt vectors.
  • Variable-Length, RISC-Like Instruction Set: Blackfin supports 16, 32 and 64-bit instructions. Commonly-used control instructions are encoded as 16-bit opcodes while complex DSP and mathematically intensive functions are encoded as 32 and 64-bit opcodes. This variable length opcode encoding allows Blackfin to achieve good code density equivalent to modern microprocessor architectures.

Media-processing features

The Blackfin instruction set contains media-processing extensions to help accelerate pixel-processing operations commonly used in video compression and image compression and decompression algorithms.

Peripherals

Blackfin processors contain a wide array of connectivity peripherals.

  • USB 2.0 OTG (On-The-Go)
  • ATAPI
  • MXVR : a MOST (Media Oriented Systems Transport) Network Interface Controller.
  • PPI (Parallel Peripheral Interface) : A parallel input/output port that can be used to connect to LCDs, video encoders (video DACs), video decoders (video ADCs), CMOS sensors, CCDs and generic, parallel, high-speed devices. The PPI can run up to 75 MHz and can be configured from 8 to 16-bits wide.
  • SPORT : A synchronous, high speed serial port that can support TDM, I2S and a number of other configurable framing modes for connection to ADCs, DACs, other processors, FPGAs, etc.
  • CAN : A wide-area, low-speed serial bus that is fairly popular in automotive and industrial electronics.
  • UART (Universal Asynchronous Receiver Transmitter) : allows for bi-directional communication with RS232 devices (PCs, modems, PC peripherals, etc.), MIDI devices, IRDA devices.
  • SPI : A fast serial bus used in many high-speed embedded electronics applications.
  • I²C (also known as TWI (two-wire interface)) : A lower speed, shared serial bus.

Because all of the peripheral control registers are memory-mapped in the normal address space, they are quite easy to set up.

Development tools hardware

Blackfin BF537 EZ-Kit-Lite evaluation platform

Development tools software

ADI provides its own software development toolchain, CROSSCORE® (VisualDSP++), but other options are also available, such as Green Hills Software's MULTI IDE, the GNU GCC Toolchain for the Blackfin processor family, the OpenEmbedded project, National Instruments' LabVIEW Embedded Module, or Microsoft Visual Studio through use of AxiomFount's AxiDotNet (integrated .NET Micro Framework based) solutions.

Supported operating systems, RTOSs and kernels

Blackfin supports numerous commercial and open-source operating systems.

OS/RTOS/Kernels on Blackfin
TitleTypeComments
LinuxFree Software GPLIntegrated into mainline kernel, distributed as part of the µClinux Distribution
ThreadXCommercial 
NucleusCommercial 
Fusion RTOSCommercial 
µC/OS-IICommercial/Source Available 
velOSity MicrokernelCommercial 
INTEGRITYCommercial 
RTEMSOpen-Source/GPL 
RTXC QuadrosCommercial/Source Available 
T2 SDEOpen-Source/GPL 
VDKCommercialADI's real-time kernel. Ships with VisualDSP++.
TOPPERS/JSPOpen-Source/GPL 
scmRTOSOpen-Source/MITExtremely small "Single-Chip Microcontroller Real-Time Operating System"
.NET Micro FrameworkOpen-SourceStand-alone version from Microsoft. Integrated version from AxiomFount.

See also

External links

References

(Prev) BlackBerry Enterprise ServerBlender (software) (Next)