51,823 research outputs found
Syntactic Complexity of Finite/Cofinite, Definite, and Reverse Definite Languages
We study the syntactic complexity of finite/cofinite, definite and reverse
definite languages. The syntactic complexity of a class of languages is defined
as the maximal size of syntactic semigroups of languages from the class, taken
as a function of the state complexity n of the languages. We prove that (n-1)!
is a tight upper bound for finite/cofinite languages and that it can be reached
only if the alphabet size is greater than or equal to (n-1)!-(n-2)!. We prove
that the bound is also (n-1)! for reverse definite languages, but the minimal
alphabet size is (n-1)!-2(n-2)!. We show that \lfloor e\cdot (n-1)!\rfloor is a
lower bound on the syntactic complexity of definite languages, and conjecture
that this is also an upper bound, and that the alphabet size required to meet
this bound is \floor{e \cdot (n-1)!} - \floor{e \cdot (n-2)!}. We prove the
conjecture for n\le 4.Comment: 10 pages. An error concerning the size of the alphabet has been
corrected in Theorem
Field-based branch prediction for packet processing engines
Network processors have exploited many aspects of architecture design, such as employing multi-core, multi-threading and hardware accelerator, to support both the ever-increasing line rates and the higher complexity of network applications. Micro-architectural techniques like superscalar, deep pipeline and speculative execution provide an excellent method of improving performance without limiting either the scalability or flexibility, provided that the branch penalty is well controlled. However, it is difficult for traditional branch predictor to keep increasing the accuracy by using larger tables, due to the fewer variations in branch patterns of packet processing. To improve the prediction efficiency, we propose a flow-based prediction mechanism which caches the branch histories of packets with similar header fields, since they normally undergo the same execution path. For packets that cannot find a matching entry in the history table, a fallback gshare predictor is used to provide branch direction. Simulation results show that the our scheme achieves an average hit rate in excess of 97.5% on a selected set of network applications and real-life packet traces, with a similar chip area to the existing branch prediction architectures used in modern microprocessors
- …