Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

System, apparatus and methods to implement high-speed network analyzers

Patent ·
OSTI ID:1225520

Systems, apparatus and methods for the implementation of high-speed network analyzers are provided. A set of high-level specifications is used to define the behavior of the network analyzer emitted by a compiler. An optimized inline workflow to process regular expressions is presented without sacrificing the semantic capabilities of the processing engine. An optimized packet dispatcher implements a subset of the functions implemented by the network analyzer, providing a fast and slow path workflow used to accelerate specific processing units. Such dispatcher facility can also be used as a cache of policies, wherein if a policy is found, then packet manipulations associated with the policy can be quickly performed. An optimized method of generating DFA specifications for network signatures is also presented. The method accepts several optimization criteria, such as min-max allocations or optimal allocations based on the probability of occurrence of each signature input bit.

Research Organization:
Reservoir Labs, Inc., New York, NY(United States)
Sponsoring Organization:
USDOE
DOE Contract Number:
FG02-08ER85046
Assignee:
Reservoir Labs, Inc. (New York, NY)
Patent Number(s):
9,185,020
Application Number:
12/770,649
OSTI ID:
1225520
Country of Publication:
United States
Language:
English

References (97)

A simple graph-based intermediate representation conference January 1995
An 80-Tile 1.28TFLOPS Network-on-Chip in 65nm CMOS conference February 2007
Array expansion conference January 2014
Parallel Sparse Matrix-Matrix Multiplication and Indexing: Implementation and Experiments journal January 2012
Polyhedral Code Generation in the Real World book January 2006
Code generation in the polytope model conference January 1998
Value dependence graphs: representation without taxation
  • Weise, Daniel; Crew, Roger F.; Ernst, Michael
  • Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '94 https://doi.org/10.1145/174675.177907
conference January 1994
A fast algorithm for finding dominators in a flowgraph journal January 1979
Lattice-Based Memory Allocation journal October 2005
Iterated register coalescing journal May 1996
An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages book January 2002
Automatic memory layout transformations to optimize spatial locality in parameterized loop nests journal March 2000
Effective partial redundancy elimination journal June 1994
Normalised Givens rotations for recursive least squares processing conference January 1995
Scanning polyhedra without Do-loops conference January 1998
Partial dead code elimination
  • Knoop, Jens; Rüthing, Oliver; Steffen, Bernhard
  • Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation - PLDI '94 https://doi.org/10.1145/178243.178256
conference January 1994
Compiler Transformation of Pointers to Explicit Array Accesses in DSP Applications book January 2001
Generation of Efficient Nested Loops from Polyhedra journal October 2000
Conversion of control dependence to data dependence
  • Allen, J. R.; Kennedy, Ken; Porterfield, Carrie
  • Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '83 https://doi.org/10.1145/567067.567085
conference January 1983
Automatic mapping of nested loops to FPGAS conference January 2007
Some efficient solutions to the affine scheduling problem. Part II. Multidimensional time journal December 1992
Two Fast Algorithms for Sparse Matrices: Multiplication and Permuted Transposition journal September 1978
An accurate cost model for guiding data locality transformations journal September 2005
The program dependence graph and its use in optimization journal July 1987
Supernode partitioning conference January 1988
Code generation for multiple mappings conference January 1994
Dataflow analysis of array and scalar references journal February 1991
Forward Communication Only Placements and Their Use for Parallel Program Construction book January 2005
Enabling Loop Fusion and Tiling for Cache Performance by Fixing Fusion-Preventing Data Dependences conference January 2005
Sparsity in higher order methods for unconstrained optimization journal April 2012
Efficient data compression methods for multidimensional sparse array operations based on the ekmr scheme journal December 2003
Efficient string matching: an aid to bibliographic search journal June 1975
Blocking and array contraction across arbitrarily nested loops using affine partitioning
  • Lim, Amy W.; Liao, Shih-Wei; Lam, Monica S.
  • Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming - PPoPP '01 https://doi.org/10.1145/379539.379586
conference January 2001
Undecidability of static analysis journal December 1992
Generation of high-performance protocol-aware analyzers with applications in intrusion detection systems conference April 2010
Induction Variable Analysis with Delayed Abstractions book January 2005
Memory optimization by counting points in integer transformations of parametric polytopes
  • Seghir, Rachid; Loechner, Vincent
  • Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems - CASES '06 https://doi.org/10.1145/1176760.1176771
conference January 2006
Early Control of Register Pressure for Software Pipelined Loops book January 2003
Operator strength reduction journal September 2001
Fuzzy array dataflow analysis journal August 1995
Efficient code generation for automatic parallelization and optimization conference January 2003
Ultra-fast aliasing analysis using CLA: a million lines of C code in a second conference January 2001
A practical automatic polyhedral parallelizer and locality optimizer journal May 2008
Constant propagation with conditional branches journal April 1991
Synthesizing transformations for locality enhancement of imperfectly-nested loop nests conference January 2014
A Geometric Programming Framework for Optimal Multi-Level Tiling conference January 2004
Maximizing parallelism and minimizing synchronization with affine transforms conference January 1997
On the (Im)possibility of Obfuscating Programs book January 2001
Software pipelining: an effective scheduling technique for VLIW machines journal July 1988
Parallel Sparse Supports for Array Intrinsic Functions of Fortran 90 journal March 2001
Flow-insensitive interprocedural alias analysis in the presence of pointers book June 2005
Some efficient solutions to the affine scheduling problem. I. One-dimensional time journal October 1992
A Library for Doing Polyhedral Operations journal December 2000
Solution and Optimization of Systems of Pseudo-Boolean Constraints journal October 2007
Static branch frequency and program profile analysis conference January 1994
Counting Integer Points in Parametric Polytopes Using Barvinok's Rational Functions journal February 2007
Precise Data Locality Optimization of Nested Loops journal January 2002
An experimental evaluation of tiling and shackling for memory hierarchy management conference January 1999
Code Generation in the Polyhedral Model Is Easier Than You Think conference January 2004
Optimal weighted loop fusion for parallel programs conference January 1997
Automatic Array Privatization book January 2001
Register tiling in nonrectangular iteration spaces journal July 2002
The mapping of linear recurrence equations on regular arrays
  • Quinton, Patrice; van Dongen, Vincent
  • Journal of VLSI signal processing systems for signal, image and video technology, Vol. 1, Issue 2, p. 95-113 https://doi.org/10.1007/BF02477176
journal October 1989
Scalable Tensor Decompositions for Multi-aspect Data Mining conference December 2008
Putting Polyhedral Loop Transformations to Work book January 2004
Space–time mapping and tiling: a helpful combination
  • Griebl, Martin; Faber, Peter; Lengauer, Christian
  • Concurrency and Computation: Practice and Experience, Vol. 16, Issue 23, p. 221-246 https://doi.org/10.1002/cpe.772
journal January 2004
A unified approach to global program optimization conference January 1973
Towards automatic generation of vulnerability-based signatures conference January 2006
Scaling to the end of silicon with EDGE architectures journal July 2004
A data locality optimizing algorithm conference January 1991
Maximal static expansion
  • Barthou, Denis; Cohen, Albert; Collard, Jean-François
  • Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '98 https://doi.org/10.1145/268946.268955
conference January 1998
Revisiting the decomposition of Karp, Miller and Winograd conference January 1995
Configurable string matching hardware for speeding up intrusion detection journal March 2005
(Pen)-ultimate tiling? journal August 1994
Tiling Imperfectly-nested Loop Nests conference January 2000
Deobfuscation: Reverse Engineering Obfuscated Code conference January 2005
Cache miss equations: a compiler framework for analyzing and tuning memory behavior journal July 1999
Array-data flow analysis and its use in array privatization
  • Maydan, Dror E.; Amarasinghe, Saman P.; Lam, Monica S.
  • Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93 https://doi.org/10.1145/158511.158515
conference January 1993
Parametric integer programming journal January 1988
On Tiling as a Loop Transformation journal December 1997
Symbolic array dataflow analysis for array privatization and program parallelization conference January 1995
Adaptive array beamforming with fixed-point arithmetic matrix inversion using Givens rotations conference November 2001
Global code motion/global value numbering journal June 1995
Scanning polyhedra with DO loops
  • Ancourt, Corinne; Irigoin, François
  • Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming - PPOPP '91 https://doi.org/10.1145/109625.109631
conference January 1991
Lattice-based memory allocation
  • Darte, Alain; Schreiber, Rob; Villard, Gilles
  • Proceedings of the international conference on Compilers, architectures and synthesis for embedded systems - CASES '03 https://doi.org/10.1145/951710.951749
conference January 2003
Structuring decompiled graphs book January 1996
Efficiently computing static single assignment form and the control dependence graph journal October 1991
Efficient representation scheme for multidimensional array operations journal March 2002
On the Best Rank-1 and Rank-( R 1 , R 2 ,. . ., R N ) Approximation of Higher-Order Tensors journal January 2000
Aggressive inlining journal May 1997
Iterative modulo scheduling: an algorithm for software pipelining loops conference January 1994
A Compiler Framework for Tiling Imperfectly-Nested Loops book January 2000
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints conference January 1977
Verifying safety properties of a class of infinite-state distributed algorithms book January 1995
Distributed Microarchitectural Protocols in the TRIPS Prototype Processor
  • Sankaralingam, Karthikeyan; Nagarajan, Ramadass; McDonald, Robert
  • 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06) https://doi.org/10.1109/MICRO.2006.19
conference December 2006
The Omega test: a fast and practical integer programming algorithm for dependence analysis conference January 1991
The Z-polyhedral model conference January 2007