Managing Heterogeneous Processor Machine Dependencies in Computer Network Applications
Ralph Duncan, Peder Jungck, Kenneth Andrew Ross, Jim Frandeen, Gregory Triplett · Lecture notes in computer science · 2014
Executing complex network packet applications typically requires using network processors and parallel processing to handle packet transmission speeds of 1 gigabit per second and beyond. Heterogeneous computing approaches also employ specialized coprocessors, such as associative memory processors for flow matching and regular expression (regex) processors for packet payload searching. Our goals for this kind of heterogeneous processing are to free application developers from hardware-specific details and to develop systems in which we can deploy new hardware and software components in modular, plug-and-play fashion. Our initial contribution to realizing these goals involves (1) expressing classic packet operations in a C dialect as C/C++-style operators; (2) compiling user code into bytecodes for a packet-processing virtual machine that hides machine-specific details; and (3) interpreting the bytecodes with microcoded interpreters that orchestrate an ensemble of heterogeneous processors on the users’ behalf. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.