Microcoded Text Parser Pipelining for State-Independent Table Reads
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Table-based state machines for text parsing are limited by their dependence on previous states, leading to sequential processing and slow memory access, which hinders performance and parallelization.
Innovation Solution
Implementing a table-based state machine with a multiplexer to select next states and outputs independently of current states, allowing pipelining and reducing state dependence, and dynamically reducing the number of possible output states to enhance processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a table-based state machine is used for text parsing, then the parser can handle different text formats through state transitions, but the performance is limited due to sequential processing and memory access dependence on previous states
Solution Approach 1:
The patent segments the state machine into multiple independent state table circuits, each handling a specific state. This allows parallel evaluation of multiple states simultaneously, eliminating the sequential dependency bottleneck while maintaining the ability to parse different text formats through the distributed state transition logic.
Solution Approach 2:
The patent transitions from a single-dimensional sequential state machine to a multi-dimensional parallel architecture by introducing multiple state table circuits that operate concurrently. This dimensional expansion allows the system to evaluate multiple possible next states in parallel, fundamentally changing the processing paradigm from sequential to parallel while preserving format adaptability.
2Adaptability or versatility
If a table-based state machine is used for text parsing, then state transitions can be defined for different inputs, but the memory access is slow due to dependence on current state
Solution Approach 1:
The patent pre-loads and makes available multiple state table circuits corresponding to different possible current states. This preliminary preparation allows the system to have multiple potential next states already computed and ready, eliminating the need for sequential memory access and enabling faster state transitions while maintaining comprehensive state transition handling.
Solution Approach 2:
The patent merges multiple state table circuits into a unified parallel processing architecture where all relevant state transitions are evaluated simultaneously. This combination allows the system to access multiple possible next states in parallel, dramatically improving memory access speed while preserving the ability to handle complex state transitions for different text formats.
3Reliability
If a table-based state machine is used for text parsing, then the parser can correctly handle special characters and fields, but it is difficult to parallelize across inputs due to state dependence
Solution Approach 1:
The patent segments the parsing system into multiple independent state table circuits, each responsible for a specific state. This segmentation allows each circuit to process inputs independently and simultaneously, enabling full parallelization across multiple inputs while maintaining parsing accuracy through the distributed state transition logic that correctly handles special characters and quoted fields.
Solution Approach 2:
The patent creates a universal parallel processing architecture where multiple state table circuits can handle different text formats and special cases simultaneously. Each circuit is designed to be multi-functional, capable of handling various parsing scenarios including quoted fields, escaped characters, and delimiters, thereby achieving both high reliability and ease of parallelization.
Data Source
AI summary
The performance of a text parser implemented with a state machine is improved by reducing a critical dependence path. In one aspect, all possible current states for a given text input are read from a state table circuit, and the correct next state and output are then selected therefrom by an output multiplexer based on the current state, removing dependence on the current state from the table read, and allowing the read(s) to be pipelined. Further, multiple input units are configured to operate on multiple text characters in parallel, with each input unit propagating outputs for its state table circuit to the next downstream input unit. Each downstream input unit is configured to use the propagated states to provide the proper outputs to appropriates multiplexer inputs. The number of possible output states may be dynamically reduced, thereby reducing the size of the output multiplexer needed to select the next state.


