Interface, and processes it through a set of functions: fooA calls fooB calls
fooC and so on.
-.. code-block:: none
+.. code-block:: none
+---> fooA(packet1) +---> fooB(packet1) +---> fooC(packet1)
+---> fooA(packet2) +---> fooB(packet2) +---> fooC(packet2)
processes the vector through a set of functions: fooA calls fooB calls fooC and
so on.
-.. code-block:: none
+.. code-block:: none
+---> fooA([packet1, +---> fooB([packet1, +---> fooC([packet1, +--->
packet2, packet2, packet2,
... ... ...
packet256]) packet256]) packet256])
-This approach fixes:
+This approach fixes:
* The I-cache thrashing problem described above, by amortizing the cost of
I-cache loads across multiple packets.