Debug of AppliedMicro’s X-Gene ARMv8 Processor

AppliedMicro has announced availability of their X-Gene Server on a Chip, with a 50% reduction in power consumption and operating costs. How do you debug a platform designed with this part?

AppliedMicro (APM) has a long heritage in the telecom market, with up to 100Gbps connectivity solutions for carriers, and a number of packet processing solutions for enterprise routers, printers, and network-attached storage. Most recently, they announced the X-Gene SoC, a custom core ARMv8 64-bit server operating at up to 2.4 GHz specifically designed for cloud servers. Given their background in the Optical Transport Network (OTN), it makes sense that the X-Gene supports a wide variety of I/O, with up to 40 Gbps of Ethernet, as well as PCI Express Gen3, SATA 3, and USB3. These make the X-Gene ideal for web front-end, caching, Big Data and storage applications.

A great interview on the origins of AppliedMicro and what they’ve done with the X-Gene can be heard at the EE Journal podcast, Amelia’s Weekly Fish Fry, about three minutes and 45 seconds in. Their VP of Marketing, Mike Major, mentions that the next generation, X-Gene2, will scale out to 100Gbps connectivity. And on their website, APM mentions that X-Gene3 will be fabricated using advanced FinFET process technology.

Debug_and_Trace_using_ARM_System_Trace_Macrocell_STM_w250ASSET is supporting the X-Gene processor with our SourcePoint debugger. You can read the press release here.

While on this subject, it’s worthwhile mentioning some of the advanced debug facilities which are available on some ARM processors. System Trace Macrocell (STM) is a newer trace element which, when integrated into an  ARM CoreSight trace structure, provides added event and data value tracing necessary  to observe changes in the state of the system. It’s essentially a trace source (trace generator in an SoC) which provides an orthogonal means of tracking events and data that are not generated from processor execution trace sources. As such, it’s extremely useful for capturing and time-stamping such macro events as power state changes, ECC failures, buffer overflow errors (a common hacking device!), and semaphore/mutex acquisition/release. We’ve written a recent technical paper on STM and its value to debug engineers, which can be viewed here