Mercury Systems Inc.
|This article needs additional citations for verification. (February 2013)|
Mercury designs and builds embedded multicomputers, which may be considered to be either loosely coupled NUMA computers or tightly coupled clusters. Despite being marketed as COTS, the computers are generally customized to better fit application requirements. Popular applications include airborne military radar, sonar, software-defined radio (cellular telephone base stations for example), video transcoding, chip wafer inspection, medical scanners of all types, and classified projects. In general, Mercury targets high-end computing applications with size, weight, and/or power constraints.
Competitors have included CSP Inc. using Myrinet, and SKY Computers using InfiniBand. CSPI also uses the multicomputer terminology, while SKY does not. All three companies are located in northeastern Massachusetts.
In 2012, Mercury Systems acquired Micronetics for $74.9 Million.
Mercury hardware is generally about packing huge numbers of decently-fast processors into a tiny space while keeping power requirements tolerable. Many dozens of CPUs or even a few hundred CPUs will be packed into a space that is only a foot or two (half a meter) on each side. Vector math and IO performance are strongly emphasized.
Mercury product offerings span three generations of switched fabric technology.
- RACEway is Mercury's original interconnect fabric. RACEway uses 6-way crossbar chips organized in a fat tree network. RACEway is circuit switched, with circuit setup and teardown being performed automatically as a chip-by-chip operation done by the hardware. There are four priority levels, with high-priority circuit setup able to kill existing lower-priority circuits. RACEway primarily uses 27 bits of 3-bit-per-hop source routing, with the added ability to specify that crossbars may choose the less-congested route under certain circumstances. There is a "broadcast" ability that operates as a flood-fill. Each CPU node, called a "CE", has the ability to map the memory of up to 14 other nodes and has a mailbox for incoming messages. Node-to-node strided DMA is available, for example allowing every third column of a matrix to be transmitted. RACEway is 32 bits wide. It always operates at 40 MHz. Heterogeneous shared-memory products were offered with the Intel i860, SHARC, and PowerPC.
- RACE++ is Mercury's second interconnect fabric. It is very similar to the original RACEway, and in fact can be set into a compatibility mode for connection to RACEway devices. RACE++ offers a 66 MHz native mode that is not compatible with the older hardware. Crossbars examine 5 bits of the 27-bit route, then shift out a configurable 3, 4 (typical), or 5 bits. The all-1-bit address is reserved to address a crossbar itself for discovery and configuration; the older RACEway crossbars are not configurable or discoverable. RACE++ crossbars typically have 8 ports. Because the chips are configurable, localized broadcast addresses can be made available.
- RapidIO is the current switch fabric. It is a serious departure from the older technology, though bridging between the two types of fabric is possible with dedicated conversion chips. RapidIO was designed in cooperation with Motorola (now Freescale). It is a reliable packet switched network that uses point-to-point links and chip-to-chip handshaking reservations to avoid dropping packets. Packets are 256 bytes, with 8-bit (most non-Mercury devices) or 16-bit addresses. Crossbars throughout the multicomputer contain local routing tables so that packets need not be source-routed.
Recently, Mercury announced a partnership with IBM to bring the Cell to embedded applications in the defense, medical, and demanding commercial fields.
Mercury supplies a set of APIs, libraries and a kernel called MCOE. The APIs provide multicomputer services to applications, and provide a common API layer above Solaris, VxWorks, Linux, or Windows on the host side, and MCexec or Linux on the compute node side. MCexec is Mercury's own real-time kernel, which is provided today mainly for customers who are not yet ready for Linux. Systems can be configured today that run MCexec on some nodes, and Linux on others. Mercury systems in the past have required a host board, which is typically not a Mercury product, and then the compute node boards. Next generation products include a host board that also provides I/O capability through the use of PMC or XMC modules.
MCOE is properly used in two stages, start-up and run. During start-up, the user allocates memory and communication resources. This can be slow on large systems, and is certainly not real-time. During the run stage, MCexec generally acts as a hard-real-time OS. Linux provides comparable performance. For the most demanding applications, the user can even disable interrupts when running MCexec on the compute nodes.
MCOE includes a single-node kernel called MCexec or LNXexec, and distributed database services for system-wide naming, routing, and resource allocation. MCexec supports the minimum real-time profile of POSIX. It is thus vaguely UNIX-like, with fork() being the greatest omission. Running a program involves two steps: loading the executable to get a handle, and spawning a process from that handle. LNXexec is essentially an off-the-shelf Linux kernel, built with a reduced footprint and with inherent support for TCP/IP over the fabric (Race or RapidIO). This, the set of nodes running LNXexec essentially become a Linux cluster, with the choice of cluster-like development or traditional Mercury development using the high-performance MCOE APIs.
Mercury Systems sells software for biomedical image processing; their most known software package for this purpose is called Amira.
The former Visualization Sciences Group of Mercury Computer Systems became in June 2009 an independent entity called VSG - Visualization Sciences Group, which continues to develop and support Open Inventor (3D Development Toolkit) and Avizo (3D Visualization and Analysis Software for Engineers and Scientists).
- "Military and Aerospace Electronics". Retrieved 15 November 2012.
- Mercury Systems (November 13, 2012) Mercury Computer Systems Announces Name Change to "Mercury Systems" press release.