US 11,989,508 B2
High-performance microcoded text parser
Daniel Lo, Bothell, WA (US); and Blake D. Pelton, Redmond, MA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Feb. 17, 2021, as Appl. No. 17/177,995.
Claims priority of provisional application 63/078,744, filed on Sep. 15, 2020.
Prior Publication US 2022/0083732 A1, Mar. 17, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 40/205 (2020.01); G06F 16/83 (2019.01); H03K 19/173 (2006.01)
CPC G06F 40/205 (2020.01) [G06F 16/83 (2019.01); H03K 19/1737 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A first text parser configured to process multiple input characters from a stream of characters in parallel, comprising:
a first set of state table circuits, each state table circuit of the first set corresponding to a predetermined state of a set of predetermined states and configured to generate first state table circuit outputs based on a first input character of the stream of characters and the corresponding predetermined state, wherein the first state table circuit outputs corresponding to each state table circuit of the first set of state table circuits collectively comprise a first set of state table circuit outputs;
a second set of state table circuits, each state table circuit of the second set corresponding to a predetermined state of the set of predetermined states and configured to generate second state table circuit outputs based on a second input character of the stream of characters and the corresponding predetermined state, wherein the second state table circuit outputs corresponding to each state table circuit of the second set of state table circuits comprise a second set of state table circuit outputs;
a first output multiplexer (MUX) configured to receive the first set of state table circuit outputs and a current state of the first text parser, and to select a first text parser output from among the first set of state table circuit outputs based on the current state;
a state propagator configured to receive the first and second sets of state table circuit outputs and to select which of respective outputs of the second set of state table circuit outputs to route to respective outputs of the state propagator based on the first set of state table circuit outputs, said respective outputs comprising a set of state propagator outputs; and
a second output MUX configured to receive the set of state propagator outputs and the current state of the first text parser, and to select a second text parser output from among the set of state propagator outputs based on the current state.