Reconfigurable semantic processor
First Claim
1. A data processing system comprising:
- an input port to receive data symbols;
a direct execution parser having a stack to store stack symbols, the parser capable of processing stack symbols in response to the received data symbols;
a parser table accessible by the parser, the parser table capable of population with production rule codes indexable by the combination of at least one received data symbol and a stack symbol supplied by the parser;
a production rule table accessible by the parser, the production rule table capable of population with production rules indexable by production rule codes;
a first semantic code execution engine capable of executing machine instructions when prompted by the direct execution parser, using machine instruction segments indicated by the parser; and
a semantic code table accessible by the semantic code execution engine, the semantic code table capable of population with machine instruction segments indexable by production rule codes.
3 Assignments
0 Petitions
Accused Products
Abstract
Data processors and methods for their configuration and use are disclosed. As opposed to traditional von Neumann microprocessors, the disclosed processors are semantic processors—they parse an input stream and direct one or more semantic execution engines to execute code segments, depending on what is being parsed. For defined-structure input streams such as packet data streams, these semantic processors can be both economical and fast as compared to a von Neumann system. Several optional components can augment device operation. For instance, a machine context data interface relieves the semantic execution engines from managing physical memory, allows the orderly access to memory by multiple engines, and implements common access operations. Further, a simple von Neumann exception-processing unit can be attached to a semantic execution engine to execute more complicated, but infrequent or non-time-critical operations.
-
Citations
56 Claims
-
1. A data processing system comprising:
-
an input port to receive data symbols;
a direct execution parser having a stack to store stack symbols, the parser capable of processing stack symbols in response to the received data symbols;
a parser table accessible by the parser, the parser table capable of population with production rule codes indexable by the combination of at least one received data symbol and a stack symbol supplied by the parser;
a production rule table accessible by the parser, the production rule table capable of population with production rules indexable by production rule codes;
a first semantic code execution engine capable of executing machine instructions when prompted by the direct execution parser, using machine instruction segments indicated by the parser; and
a semantic code table accessible by the semantic code execution engine, the semantic code table capable of population with machine instruction segments indexable by production rule codes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An integrated circuit comprising:
-
an input port to receive data symbols;
a direct execution parser having a stack to store stack symbols, the parser capable of processing stack symbols in response to the received data symbols;
a parser table accessible by the parser, the parser table capable of population with production rule codes indexable by the combination of a received data symbol and a stack symbol supplied by the parser;
a production rule table accessible by the parser, the production rule table capable of population with production rules indexable by production rule codes;
a first semantic code execution engine capable of executing machine instructions when prompted by the direct execution parser, using machine instruction segments indicated by the parser; and
a semantic code table accessible by the semantic code execution engine, the semantic code table capable of population with machine instruction segments indexable by production rule codes. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An integrated circuit comprising:
-
an input port to receive data symbols;
a direct execution parser having a stack to store stack symbols, the parser capable of processing stack symbols in response to the received data symbols;
a parser table accessible by the parser, the parser table capable of population with production rule codes indexable by the combination of a received data symbol and a stack symbol supplied by the parser;
a production rule table accessible by the parser, the production rule table capable of population with production rules indexable by production rule codes;
multiple semantic code execution engines, each capable of executing machine instructions when prompted by the direct execution parser, using machine instruction segments indicated by the parser;
a semantic code table accessible by the semantic code execution engines, the semantic code table capable of population with machine instruction segments indexable by production rule codes; and
a machine context data interface connectable to a data storage area and accessible by the semantic code execution engines, the machine context data interface managing the data storage area and performing data operations in response to machine context instructions issued by the semantic code execution engines. - View Dependent Claims (33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44)
-
-
37. An integrated circuit comprising:
-
an input port to receive data symbols;
a direct execution parser comprising a stack to store stack symbols, the parser capable of processing stack symbols in response to the received data symbols, a parser table interface to allow the parser to access a parser table capable of population with production rule codes, each code indexable by the combination of a received data symbol and a stack symbol supplied by the parser, a production rule table interface to allow the parser to access a production rule table capable of population with production rules, each rule indexable by production rule codes; and
a first semantic code execution engine capable of executing machine instructions when prompted by the direct execution parser, using machine instruction segments indicated by the parser; and
a semantic code table interface to allow the semantic code execution engine to access a semantic code table capable of population with machine instruction segments corresponding to production rules.
-
-
45. A method of configuring a data processor to process a datagram data input stream, the method comprising:
-
storing a set of production rules, for interpreting datagrams, in a production rule table, each rule comprising one or more symbols;
storing a set of semantic execution engine instructions in a semantic code table, the semantic execution engine instructions including code segments associated with at least some of the production rules; and
storing a set of production rule codes, referencing the production rules, in a parser table. - View Dependent Claims (46)
-
-
47. A method of operating a network processor, the method comprising:
-
detecting, at an input port, reception of the start of a datagram comprising multiple data symbols;
directing a direct execution parser to parse data symbols from the datagram according to a set of stored production rules; and
at least once during the parsing process, directing a semantic code execution engine to execute a code segment associated with a production rule. - View Dependent Claims (48, 49, 50)
-
-
51. A method of implementing a network packet protocol, the method comprising:
-
dividing the protocol into a set of parseable grammatical production rules, each comprising at least one symbol selected from the group of terminal and non-terminal symbols, and a set of machine context tasks to be performed for at least some of the production rules by an execution engine;
assigning a non-terminal code and a production rule code to each production rule;
organizing the grammatical production rules in a machine-storable format, indexable by production rule code;
organizing the machine context tasks in an execution-engine instruction code format, indexable by the production rule code associated with the corresponding production rule; and
generating a parser table of production rule codes in machine-storable format, indexable by the combination of a non-terminal symbol and at least one symbol appearing in a packet to be parsed by the network packet protocol. - View Dependent Claims (52, 53, 54, 55, 56)
-
Specification