Intel IXA SDK ACE Programming Framework - Department of ...
Intel IXA SDK ACE Programming Framework - Department of ...
Intel IXA SDK ACE Programming Framework - Department of ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
The <strong>ACE</strong> <strong>Programming</strong> <strong>Framework</strong> for Packet Handling<br />
l<br />
l<br />
The core component <strong>of</strong> a micro<strong>ACE</strong> is a complete conventional <strong>ACE</strong>, with<br />
C/C++, NCL, and <strong>IXA</strong> IDL code. The core component runs on the core processor<br />
in the IXP1200.<br />
The acceleration component <strong>of</strong> a micro<strong>ACE</strong>, called a microblock, is hardwarespecific<br />
and is written in IXP1200 microcode (machine code). The microblock runs<br />
on the microengines in the IXP1200. It performs fast-path processing, but can<br />
exchange packets with its core component on the core processor to handle exception<br />
cases.<br />
For more information on hardware platforms and deployment options, see “Hardware<br />
Architecture: The IXP1200 Network Processor” on page 14.<br />
You use micro<strong>ACE</strong>s for optimized, high-speed (fast-path) processing. Because the<br />
IXP1200 network processor contains a number <strong>of</strong> microengines running in parallel,<br />
each with multiple threads, micro<strong>ACE</strong>s provide extremely high efficiency in basic<br />
packet handling. Most system <strong>ACE</strong>s and library <strong>ACE</strong>s are implemented as micro-<br />
<strong>ACE</strong>s.<br />
The <strong>IXA</strong> <strong>SDK</strong> includes a complete set <strong>of</strong> tools, including compilers, linkers, and<br />
debuggers, for working with microcode to develop micro<strong>ACE</strong>s. For more information<br />
on the architecture <strong>of</strong> micro<strong>ACE</strong>s, see Chapter 6, “Writing Micro<strong>ACE</strong>s.”<br />
Dividing Tasks<br />
Among <strong>ACE</strong><br />
Types<br />
Generally, a micro<strong>ACE</strong> looks in a packet to classify it, performs simple transformations<br />
(such as NAT or protocol conversion), and routes it to the appropriate target.<br />
Exceptions are reported to another (conventional) <strong>ACE</strong> for handling. This allows<br />
time-consuming operations to run in parallel without slowing down traffic.<br />
The following figure shows an example <strong>of</strong> a forwarding application that uses a<br />
micro<strong>ACE</strong> for data processing and a conventional <strong>ACE</strong> for control.<br />
8 Introduction and Overview<br />
Revision 3.3, August 2001