Images courtesy SRC Computers
Figure 1: In the Implicit+Explicit Architecture, Dense Logic Devices (DLDs) encompass a family of components that includes microprocessors,
digital signal processors, as well as some ASICs. These processing elements are all implicitly controlled and typically are made up of fixed logic that is not altered by the user.
Figure 2: Systems can be built with a single MAP processor
and microprocessor combination, or when more flexibility is
desired, Multi-Ported Common Memory accommodating up to
three MAP processors and Hi-Bar switches accommodating
thousands of MAP processors can be employed.
Figure 3: SRC servers that use the Hi-Bar crossbar switch interconnect can incorporate common memory nodes in addition to microprocessor and MAP nodes. Each of these common memory nodes contains an intelligent DMA controller and up to 16 GBs of DDR-2 SDRAM.
Figure 4: The MAP processor used in this system was the most powerful SRC-6 MAP processor ever produced. It was coupled to an Intel Pentium microprocessor and used a Fedora Linux operating system.
Figure 5: The second airborne system in production is a 10-module system designed for payload bay 3 of the General Atomics Sky Warrior, but is also usable in other larger manned and unmanned platforms. It contains a dual Xeon motherboard, a Hi-Bar switch, 750 Gbytes of removable encrypted storage, 28 VDC power system, thermal solution and a mixture of up to 10 MAP processors or common memory
Figure 6: This system is being designed to withstand an operating range from –50C to +50C, an altitude limit in excess of 25,000 feet. and will meet shock and
vibration requirements for single engine aircraft weighing less than 12,500 pounds.
Figure 7: A grayscale pixel’s intensity is simply the pixel’s eight-bit numeric value, but the intensity information is distributed among the individual RGB values for a color pixel. To obtain the intensity value
for an RGB pixel, each 24 bit RGB value is transformed from the RGB color space to the Hue-Saturation-Intensity (HSI) color space. The intensity values for all pixels in both frames are then histogrammed.
From these two intensity histograms, a statistical Cumulative Distribution Function (CDF) is created and then normalized for each frame. A mapping function is created from these two normalized CDF
arrays to map the original color pixel intensity values to a new intensity value such that the new intensity value distribution matches the GS pixel intensity value distribution. The original intensity values are
re-mapped and the new HSI image is transformed back into the RGB color space.
Figure 8: The MAP processor’s GCM Bank 0 acts as a frame buffer for the RGB image and GCM Bank 1 acts as a frame buffer for the GS image. In stage
0, two RGB and six GS pixel intensities are histogrammed in parallel every clock. The integer RGB intensity calculation is part of the RGB histogramming
pipeline. After all pixel intensities for both frames are histogrammed, stage 1 calculates the CDF arrays for both histograms for all histogram bins in parallel.
Stage 2 normalizes both CDF arrays in parallel, a single precision floating point (SPFP) calculation. Stage 3 uses both normalized CDF arrays to generate
the histogram matching MAP array. Finally, stage 4 re-reads the RGB image data two RGB pixels per clock from GCM Bank 0 and calculates the HSI pixel
values. The two integer intensity values select two new intensity values from the Map array (generated in stage 3). The two new intensity values are cast to
SPFP, and together with the two SPFP pixel hue and saturation values, are converted back to the 24 bpp RGB color space and stored in GCM Bank 1.
Figure 9: The CPU normalized cross-correlation application is a single threaded, serial implementation of the algorithm shown in Figure 8.
AIRBORNE SYSTEM IMPLEMENTATIONS
The SRC-6 Portable MAPstation™ system, shown in Figure 4, was developed under an Air Force contract in 2004. This 2-inch-by- 6-inch-by-10-inch convection cooled system weighs four pounds and is powered by 12 VDC making it ideal for small UAV operation. When equipped with an internally mounted GPIOX card it can accommodate a variety of direct sensor inputs. For example the ADCX card supports two coherent 2 G sample/s 10 bit A/D channels and has a low phase noise on board clock source. For image processing the camera link card can be used to connect to three base or one full camera link. The system consumes 60 watts while providing more than an order of magnitude increase in performance than a 3 GHz Xeon® microprocessor for typical image processing and SAR applications.
The second airborne system in production is a 10-module system designed for payload bay 3 of the General Atomics Sky Warrior, but is also usable in other larger manned and unmanned platforms. It contains a dual Xeon motherboard, a Hi-Bar switch, 750 Gbytes of removable encrypted storage, 28 VDC power system, thermal solution and a mixture of up to 10 MAP processors or Common Memory modules. This 20-inch-by-10.5-inch sealed system, as shown in Figure 5, is also an SRC-6 based system. It also uses an unmodified Fedora Linux operating system. A version of this system is used by Lockheed Martin as the Signal Data Processor for the Army TRACER program.
To compliment this airborne system, SRC Computers also produces a 19-inch rack mountable air-cooled system that uses all the same electronics and is ideal for application development.
THE CARTE PROGRAMMING ENVIRONMENT
To make the IMPLICIT+EXPLICIT Architecture easy for programmers to use, SRC has developed the Carte Programming Environment. Carte software tools support code development and execution on the hardware, as well as in emulation and simulation environments. These software tools take ANSI standard high-level language C or Fortran code and compile appropriate portions of it to run on the MAP processors and microprocessors. Everything needed to control both types of processors for a given application, is then combined by the Carte Programming Environment into a single Unified Executable. The end result is that, for the first time ever, a programmer can easily use standard high-level programming languages and programming models to control a system with both reconfigurable and standard processors and achieve orders of magnitude more compute performance per processor than with microprocessors alone.
The SRC Carte Programming Environment supports co-development of programs written to run on microprocessors and FPGA-based MAP processors. The MAP compiler compiles codes into configuration bit-streams that configure the MAP processor(s) while the Intel compiler compiles codes for the microprocessor.