News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Linux development tools rev’d for multi-core SoCs

May 6, 2009 — by Eric Brown — from the LinuxDevices Archive — 25 views

Tilera Corp. released version 2.0 of its Eclipse- and Linux-based Multicore Development Environment (MDE) supporting its massively multi-core system-on-chips (SoCs). MDE 2.0 offers support for both its Tile64- and newer TilePro-family processors, for development of scalable, multi-threaded,…shared-memory applications, says the company.

(Click for larger view of Tilera MDE 2.0 screens)

With version 2.0, Tilera has updated MDE's SMP (symmetrical multiprocessing) Linux implementation for the TilePro family, and has likewise optimized compilers and other development tools, says the company. New MDE features includes a Bare Metal Environment (BME) run-time environment in addition to its pre-existing full SMP Linux implementation. Version 2.0 also provides a new Zero Overhead Linux (ZOL) that is said to "combine the best of both worlds" of the SMP and BME environments, as well as a new hybrid mode that lets developers mix and match two or three of these run-times on a single SoC. Using MDE 2.0 with a TilePro SoC, developers can "linearly scale their Linux and real-time dataplane applications to unprecedented performance," claims Tilera.


MDE architecture using SMP Linux run-time
(Click to enlarge)

Tilera announced its first TilePro SoCs in September. The 36-core TilePro36 and 64-way TilePro64 model are fabbed on 90nm process technology at TMSC. In December, Tilera began shipping the TilePro36, aimed at graphics-intensive embedded applications and networking devices. Tilera claims that TilePro64 performance is double that of Tile64 in networking applications such as Snort and nProbe, while offering "35x better performance-per-Watt over the Quad-Core Xeon." (See screen below for benchmarks, and see farther below for more on the TilePro.)

MDE is an Eclipse-based development kit that includes run-time environments, toolchains, and several tools aimed at easing parallel programming (see diagram above, at right). Specifically, these include some profiling tools presumably aimed at helping to identify which parts of an application to parallelize, and an "iLib" parallel programming library aimed at making inter-core communications more efficient by abstracting process management, and providing "socket-like" streaming channels and message passing mechanisms.


Tilera benchmark screen for Tile64 SoC using nProbe, showing high scalability of over multiple tiles (cores)

In addition to being optimized in general for TilePro, while continuing to support Tile64, MDE 2.0 is notable in particular for its new run-time environments. The Bare Metal Environment (BME) is said to be suitable for RTOS porting and low-level dataplane applications, and the Zero-Overhead Linux (ZOL) mode is said to offer a compromise between the hardware control of the BME environment and the rich features set of the pre-existing SMP Linux implementation. ZOL is touted for extending the "tickless kernel" feature of Linux 2.6.26 to eliminate timer ticks and other overhead from real-time applications, thereby offering "significantly improved real-time responsiveness and determinacy," compared to SMP, says Tilera.


MDE 2.0's four development mode scenarios

Developers can also create hybrid systems in which different cores run any or all of the above three environments. The hybrid mode enables developers to consolidate control-plane components on cores running Linux, while running performance sensitive dataplane components with either ZOL or BME, says the company.

Here are some more details on each mode:

  • Standard SMP Linux — full SMP Linux OS, plus hypervisor and application libraries, designed for applications and control plane code requiring OS services
  • Zero Overhead Linux (ZOL) — Similar to Standard SMP, ZOL strips out Linux overhead such as OS interrupts, timer ticks, and TLB shoot-downs. Said to be transparent to a programmer, with no software changes required, ZOL is designed for "high performance real-time dataplane applications," says Tilera.
  • Bare Metal Environment — This implementation offers full control of the hardware, with libraries for memory, communication, and I/O. Designed for embedded applications requiring fine grain control of memory and I/O or for customers who want to port their own OS.
  • Hybrid Environment — This combination mode integrates two or all three of the above environments, with each run on one or more tiles. The hybrid mode is aimed at customers aggregating dataplane and control plane software on a single SoC.

Other new features in MDE 2.0 include higher-level programming models, such as Erlang, and the addition of Boost C++ libraries, new device drivers, and support for JumpGen Systems TxM-100 AMC platforms, says Tilera. In addition, version 2.0 offers Tile Multicore Components (TMC) libraries for parallel programming and performance tuning.

Features listed for MDE 2.0 are said to include:

  • New BME, ZOL, and Hybrid run-time modes (see above)
  • Standard ANSI C/C++ Compiler with GNU extensions, SIMD intrinsics, and optimizations (inlining, unrolling, profile
    guided optimization)
  • Eclipse based IDE with interactive debugger and profiler, and grid view of all tiles for aggregate control
  • Parallel debugger — "Whole-application" debugging with control over the entire processor or individual cores and visual representation of all core states
  • Parallel profiler:
    • Graphical IDE
    • Standard Gprof for function-level profiling
    • Detailed run-time information
    • Application statistics per process
    • Source-level tracking per function
    • Representative stack trace
    • Utilization details per CPU, cache, memory, and network

More on TilePro

Like the original Tile64 processors, the TilePro SoCs are based on a proprietary VLIW (very long instruction word) architecture, on which a MIPS-like RISC architecture is implemented in microcode. A hypervisor enables each core to run its own instance of Linux — or other OSes, once they become available. Alternatively, the whole chip can run Tilera's SMP (symmetrical multiprocessing) Linux implementation.

The new TilePro family is said to improve the performance of "highly threaded and shared-memory applications" through a technology Tilera calls Dynamic Distributed Cache (DDC). The feature acts as an on-chip communication network dedicated to cache management, enabling the processors to double both the L1 cache size and L2 cache associativity, says the company.

The TilePro processors have also gained new instruction set extensions for audio and video. The extensions are touted as delivering up to twice the multimedia signal processing performance, compared to the Tile64.


TilePro64 block diagram

The TilePro64 is said to integrate 64 cores, four 800MHz DDR2 memory controllers, and an array of high speed I/O and PCI Express interfaces. The SoC can encode 10 streams of 1080p H.264 video (baseline profile), and execute over 20Gbps of pattern matching in networking applications, claims Tilera. The TilePro36, meanwhile, clocks from 600MHz to 900MHz, consumes 9-13 Watts (typical), and runs Linux on each, some, or all cores.

Stated Troy Bailey, Tilera VP of Marketing, "MDE 2.0 in combination with the new TilePro family of processors enables our customers to double, and in some cases quadruple their application performance, as compared to other solutions."

Availability

Multicore Development Environment (MDE) 2.0 is available now, says Tilera, which did not provide pricing information. More information may be found here.


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.