13.06.2015 Views

Intel IXA SDK ACE Programming Framework - Department of ...

Intel IXA SDK ACE Programming Framework - Department of ...

Intel IXA SDK ACE Programming Framework - Department of ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!