Processors vs. FPGAs
Intel Architecture versus the FPGA: The Battle of Time, Complexity and Cost
The continued evolution of Intel architecture (IA) enables electronic OEMs to consider it for applications previously requiring an FPGA. The benefits brought by IA are decreased development time, lower project cost, and high performance with feature integration.
BY MATT STEVENSON, WIN ENTERPRISES
Page 1 of 1
“Clay is fashioned into vessels; but it is on their empty hollowness that their use depends.” -- Tao Te Ching, Lao Tzu
FPGAs have no intended function when you buy them; but they gain value through their impressive potentiality. They have broad flexibility and can be applied to virtually any digital processing problem. They arrive at their impressive flexibility through three interconnected physical features, each of which is configurable:
• Tens of thousands or more of Configurable Logic Blocks (CLB)
• Thousands of configurable I/O Blocks (IOB)
• A metallic matrix that surrounds CLBs and IOBs interconnects all the FPGA’s elements and is also configurable (Figure 1).
The Classic FPGA schematic with Configurable Logic Blocks (CLB), I/O Blocks (IOB) and interconnecting metallic matrix. External Flash is used to retain the FPGA’s memory which is volatile.
The IA microprocessor and FGPA are applied in substantially different ways. The FPGA is characterized by its extreme flexibility and an ability to handle massively parallel processing tasks that are often repetitive in nature. The extreme flexibility means developers essentially handcraft the chip. Features are built using sections of Logic Blocks. This enables the developer to optimize code size and operating efficiency within the bounds of the selected FPGA. Layouts are made as elegant and unconvoluted as possible so as not to impede performance. Given proper design technique, the fact that the FPGA layout is largely handcrafted and optimized by the developer renders I/O functions highly unconstrained.
The latest generation of IA processors with their large internal cache and powerful, general purpose multi-core architecture, still provide programmers with a flexible and familiar work environment. All of the devices and interfaces are well defined, allowing direct code migration with other IA platforms. Software development kits can be utilized to add more features and speed development. In addition, IA processors provide ready access to a wealth of existing applications, solution suites, operating systems, tools and utilities that come from a well established IA ecosystem of software and hardware developers.
FPGAs can do virtually any task, and though incredibly complex, their manufacturers have adopted techniques to ease the development task. Rather than requiring the developer to handcraft every single feature, FPGAs can now be purchased with a number of dedicated functional units, such as embedded processing cores, DSP blocks with multipliers, Ethernet controllers, DSP cores, and RAM blocks.
In addition, FPGA manufacturers now produce chips preconfigured with support for certain features, such as: serial processing, I/O optimization, digital signal processing (DSP), and various feature combinations. FPGAs provide their high performance by enabling a high task count per clock cycle. This serves many applications well. Networking applications, for instance, like high-speed processing of small packets, and similar instances where the parallel execution capabilities can be leveraged to increase output for a given cycle.
The use of higher-end FPGAs is generally limited to products that can support the higher unit cost incurred due to a long development time and the testing required across development and production phases. High FPGA development cost can be amortized over larger production runs, but often when the production numbers get really large either an IA or ASIC approach is likely to be considered.
ASIC’s are more efficient because they eliminate the waste of the FPGA’s unused transistors. Although these savings are minimal, production cost for these dedicated, more streamlined devices is lower. However, ASIC’s present even greater development cost with even longer development time than the FPGA. Also, once an ASIC is produced, it can not be modified. IA and FPGA solutions are always modifiable, IA through the use of socketed CPUs, or for either approach, by simply modifying the software. Naturally, there are drawbacks to the FPGA.
FPGA, Like Driving the Streets of Boston
Designing an FPGA is like driving the streets of Boston. If you haven’t done it many times before, it’s going to be a painful experience. FPGA implementations are more complicated and difficult than programming and debugging IA microprocessors. You select an FPGA only when the extra speed and lower latency are more critical than shorter development time. FPGA’s are good choice when you need to perform a little processing on a lot of data. The closer the application is to a straight I/O function, the better. IA and other x86 CPUs are good when you need more sophisticated processing.
Another potential counter-indication for the use of an FPGA is the need to perform floating point calculations. FPGA’s can do these functions, but find them resource intensive. Any throughput advantage gained risks being compromised or lost.
Chip selection is further complicated by the nonstandard architectural terms used by the major FPGA vendors. For example, Xilinx® uses the term Logic Cell while Altera® uses Configurable Logic Block (CLB). Also, the basic features such as the number of look-up-tables (LUTs) per logic block can vary from manufacturer to manufacturer.
Lastly, the FPGA programming languages are not intuitive and do not resemble the familiar languages of the IA world, such as Linux, C and C++. The three development languages of the FPGA world, i.e., HDL, VHDL, and Verilog, are not standard programming languages. They are meant for designing electronic devices. Programming an FPGA is more akin to designing an ASIC or a CPU chip from scratch than writing an application that runs on a preconfigured processor.
When a solution provider decides to use an FPGA, there is an element of line balancing from the human resource perspective. Assuming the project is to be done in-house, the new project will typically be competing for scarce resources. If in-house talent can’t take on the project in the required timeframe, it will have to be outsourced or a new hire(s) made. Typically, the IA approach to development is much less constrained due to the relative abundance of this type of expertise and the lesser time demands of the project.
In general, developers who work with FPGA’s are highly trained and highly paid—and for good reason. Just selecting and sizing the optimum FPGA for a particular project is difficult and time consuming. A summary of some of the drawbacks to using an FPGA is given in Table 1.
The Drawbacks of FPGA Implementation
The Advantages of Using IA
When would an FPGA be the better choice for your project? The FPGA will continue to be appropriate for environments where a system must react to events with ultra-tight timing parameters and where massive I/O with the least possible latency is a critical need, as in certain networking applications.
The major advantages of IA as a development environment are:
• Ease of Use -- IA presents a familiar development environment with no shortage of affordable experts.
• Ubiquity -- more than any other architecture, IA pervades hardware and software systems.
• Aggressive Development -- Intel continually pushes development for higher performing, lower power consuming, and more feature-integrated processors.
There is certainly room for both approaches. For example, WIN Enterprises uses FPGAs in its single board computers (SBC) and systems for gaming applications. These manage several functions, such as various digital GPIOs to/from lamps, meters, solenoids, motors, buttons, switches and sensors and other functions like battery-operated intrusion detection, hardware intelligence and random number generation. FPGAs are also used by the company in custom network platforms for network acceleration.
An example of how IA can be used as a viable alternative to FPGAs is their use for the development of networking products that support Intel’s Next Generation Communications platform. This is an environment where products must support system-wide scalability, security (IPS, IDS), flow classification, virtualization, SSL acceleration and termination, high-speed routing and forwarding, etc. In today’s resource constrained world of Enterprise IT and call centers, systems not only need to scale, they need to scale without adding additional complexity or operating costs.
The nature of IA has changed greatly from the early days of x86 processors. As chips and their components have continued to shrink, new powerful features have been integrated to keep the overall size more or less the same. In addition to more powerful chips, another result is that manufacturers don’t have to continually retool to accommodate a continued miniaturization of processors.
Integrated Intel QuickAssist
Intel QuickAssist Technology, an Accelerator Abstraction Layer (AAL), is now integrated into many high-end IA processors and chipsets. Intel QuickAssist Technology supports IPsec, SSL, and wireless security protocols to provide integrated security and data compression (Figure 2).
Intel QuickAssist Technology Acceleration Abstraction Layer (AAL) block diagram.
When Intel Quick Assist Technology is combined with the Intel Data Plane Development Kit (Intel DPDK). OEM are able to more quickly and easily design a full range of communications solutions, including secure routers, high-performance web appliances, and hot-pluggable blades, to support scalable, high-capacity routing.
Intel DPDK Accelerator Abstraction
In the Next-Generation Network (NGN) a major need is to deal with the convergence of virtualized IT Data Centers and telecommunications networks. These previously disparate networks must now converge to handle all types of information and services such as voice, data, video, etc.
By their nature telecom networks tolerate extremely little latency and have significantly higher throughput needs than most IT data networks. To a large extent, the integration challenges define the Next-Generation Network.
An enabling technology for the development of Next Generation network solutions is the Intel Data Plane Development Kit (Figure 3). The Intel DPDK is used by Intel ecosystem members like 6WIND, Wind River and others to develop packet processing software and software solution suites. In turn, this software is used by OEM customers and end-user companies to implement integrated, security-centric enterprise and call center solutions. These companies are members of the Intel Internet of Things Solutions Alliance, which helps members working together on new solutions.
The Intel Data Plane Development Kit enables integrated networking across the four Enterprise workloads. Solution providers utilizing DPDK in various software suites include: Wind River, 6WIND, Radisys and Tieto.
For instance, WIN Enterprises, another IoT alliance member, provides board- and platform-level hardware devices that support the networking and packet processing software developed by these partners. This work is helping to provide the transition to the Next Generation Network.
Application areas where solution providers can consider an IA approach have broadened. They include enterprise, data center and edge networking applications, such as:
• SSL Acceleration and termination
• Routing and forwarding
• Flow classification
• Layer 4 Packet Processing
• Security (IPS, IDS)
• SSL Encryption
• Network & Storage Data Compression
• WAN Optimization
• TCP/IP Offload
• Pattern Recognition & De-duplication
As an example of a Next Generation Network product that WIN Enterprises has developed is the WIN SoNIC preprocessing card. It can be used with new and existing servers to enhance network performance. Customer-specific variants of the WIN SoNIC reference design have been developed, such as a blade with multiple instances of the acceleration card (Figure 4).
WIN SoNIC is a reference platform for Intel-based Next Generation Communications Platforms. The board is an advanced networking preprocessing card that can be used with new and existing servers.
These board-level products present customers with an attractive alternative to FPGA solutions which would be more costly and time consuming to develop. Customers gain the advantages of IA such as future-proofed scalability and advancements in security.
Moore’s Law will continue live and evolve, inviting continued feature integration into IA processors. As previously mentioned, FPGAs can now be ordered with microprocessors included; and keeping things symmetrical, Intel has announced that it will integrate an FPGA into an Intel Xeon processor E5 as a means to further accelerate application performance. This means IA and FPGA will be in the same socket. When available, this will give developers serving the Enterprise and datacenter segments with another option.
North Andover, MA