Software products and services to help you build excellent high-performance mobile and embedded computer systems.

Does the jumble of new product and process technologies for mobile and embedded systems have you flummoxed? We can help. Three Birds Systems is dedicated to helping our clients build high-performance, high-efficiency, high-quality mobile and embedded systems that leverage emerging heterogeneous multicore system-on-chip (SoC) technologies. We start by providing consulting by a senior engineer with over 35 years experience in developing embedded systems. We will follow that with middleware products, currently under development, that will help you realize the performance potential of these SoC devices.

As part of our preparation to serve you better, we are constantly evaluating and testing the tool chains available for heterogeneous software development for mobile and embedded devices. We find the useful workarounds, so you don't have to.

Tell us your challenge, and let's see if we can work with you to help you solve it.

What is heterogeneous computing, and why would I want it in my mobile or embedded system?

Modern silicon process technologiy has enabled the manufacture of chips with billions of transistors. However, at these design scales, physical limitations of silicon prohibit the doubling of on-chip clock speed (with reasonable power dissipation) that has been typical of the Moore's Law progression. Chip designers have had to figure out new ways to get the compelling increases in performance that drive sales.

Multicore architectures emerged as a way to use this abundance of transistors. But how do you program them? Homogeneous multicore architectures, typically used in CPU chips, can be programmed using the same symmetric multiprogramming (SMP) methods previously used in multi-chip shared memory computers. While SMP is not a solved problem, it is at least a familiar one.

Heterogeneous multicore architectures also emerged, in which cores of different types are integrated together, typically in a “system-on-a-chip” (SoC) device. Devices are marketed by various vendors that contain various combinations of graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), and special-purpose communication functional units.

Heterogeneous multicore processors have the advantage that, given certain data organizations, they may have the capability to provide significantly higher performance at lower power levels. This is possible because more transistors are used for actual computation instead of for control and cache memory functions, as is the case in a general-purpose architecture. For example, GPU cores are optimized to work on images, and exploit the fact that an image is an array of pixels (spatial coherency). Similarly, some DSP cores provide special instructions and data motion capabilities to facilitate frequency domain transformations, such as the fast-Fourier transform (FFT).

System-level efficiency results when data can be efficiently routed to cores with architectures optimized to the type of processing required. This gain in efficiency can reduce power dissipation and improve battery life in mobile and embedded systems.