The Anatomy of Virtualized Accelerator Engine TechnologyMonday October 14, 2019
By Mark Baumann, Director, Product Definition & Applications, MoSys, Inc.
MoSys recently announced a family of Accelerator Engines which immediately prompted a series of questions. One of the most common comments was when people asked us to specifically define what an accelerator engine was.
So, since accelerator engine can be defined in several ways, I’d like to share what we at MoSys mean when we use this term:
At MoSys our mission is to provide solutions that enable (embedded) acceleration or deployment of a function (such as packet filtering, packet forwarding and data analytics) that our customer is either already performing or wishing to deploy but have not been able to dedicate the time to implement. Allowing a user, an alternative or accelerated way of implementation. A common functional issue that MoSys Accelerator Engines address is the memory access rate of systems that require true random access to data.
Virtual Accelerator Engine (VAE)
It is our observation that the market continues to migrate to software-defined environments. This means that performance scaling has become key to remaining competitive, while there remains a need to address the growing requirements being placed on systems. Software must now be transferrable across multiple hardware environments in order to be both cost-effective and provide the required flexibility to meet changing performance demands.
This flexibility has led architects and designers to:
- Require a hardware agnostic solution that can run over CPUs, FPGAs and other hardware platforms.
- Seek scalable solutions that can meet their current performance needs, as well as provide a path to new products to meet new and increasing market demands.
- Look for a technology that is both cost-effective and provides the required flexibility to meet changing performance demands.
- Count on products that are easy to use and do not require learning new software.
- Expect innovation that allows users to preserve and re-use software assets.
The foundation of this approach has been to provide a highly scalable platform to execute the desired embedded function. The MoSys VAE has created a functional abstraction with a high-level software API for a specific application area that can be implemented across different hardware and software environments.
The VAE leverages common application program interfaces (APIs) to enable platform portable solutions to enable performance scaling of up to 100x. This is accomplished by taking advantage of a common API that allows execution of the same function running software on a CPU; RTL running on an FPGA to very high-performance implementations which combine an FPGA connected to MoSys silicon hardware accelerators with in-memory compute functions like the MoSys PHE with its 32 RISC cores and 1Gb of embedded memory. The VAE solution includes:
- Single API
- Single RTL Module Interface
- Adaption Layer software
- Scalable platform performance
Scalability Across Multiple Hardware Environments
Scalability comes from the ability of each implementation to take advantage of available compute and memory resources. Memory can range from DRAM adjacent to the CPU, to block memory or HBM on the FPGA or 1T-SRAM tightly coupled with 32 RISC engines in MoSys Accelerator Engine IC products.
MoSys’ initial focus is on embedded applications that require:
- High random-access rate memory
- High data rate throughput
- Low latency