Methods and apparatuses for providing data received by a state machine engine
AssigneeMicron Technology, Inc.
InventorsDavid R. Brown, Harold B. Noyes, Inderjit S. Bains
Life of this patent
Estimating the term…
Abstract
An apparatus can include a first state machine engine configured to receive a first portion of a data stream from a processor and a second state machine engine configured to receive a second portion of the data stream from the processor. The apparatus includes a buffer interface configured to enable data transfer between the first and second state machine engines. The buffer interface includes an interface data bus coupled to the first and second state machine engines. The buffer interface is configured to provide data between the first and second state machine engines.
Claims62
An apparatus, comprising:
- a data bus comprising a first plurality of data lines and a second plurality of data lines, wherein the first plurality of data lines is configured to provide data in parallel with the second plurality of data lines;
- a first state machine engine coupled to the first plurality of data lines;
- and
- a second state machine engine coupled to the second plurality of data lines, wherein the first state machine engine is configured to receive a first portion of a data stream from the first plurality of data lines in parallel with the second state machine engine receiving a second portion of the data stream from the second plurality of data lines;
- wherein the second state machine engine is configured to provide the second portion of the data stream to the first state machine engine, and the first state machine engine is configured to analyze the first portion of the data stream and the second portion of the data stream.
A method for analyzing data, comprising:
- receiving, at a first state machine engine, a first portion of a data stream from a first plurality of data lines of a data bus;
- receiving, at a second state machine engine, a second portion of the data stream from a second plurality of data lines of the data bus, wherein the second portion of the data stream is received at the second state machine engine in parallel with the first state machine engine receiving the first portion of the data stream;
- and
- providing the second portion of the data stream from the second state machine engine to the first state machine engine.
An apparatus, comprising:
- a first state machine engine configured to receive a first portion of a data stream;
- a second state machine engine configured to receive a second portion of the data stream;
- and
- a buffer interface configured to enable data transfer between the first state machine engine and the second state machine engine, the buffer interface comprising an interface data bus coupled to the first state machine engine and to the second state machine engine, and configured to provide data between the first state machine engine and the second state machine engine.
A method for operating a buffer interface, comprising:
- receiving, at a master chip, a first portion of a data stream;
- receiving, at a slave chip, a second portion of the data stream;
- providing a first signal from the master chip to the slave chip using the buffer interface to initiate data transfer between the master chip and the slave chip;
- providing the first portion of the data stream to the buffer interface at a first time after providing the first signal from the master chip;
- and
- providing the second portion of the data stream to the buffer interface at a second time after the first time.
A method for storing data, comprising:
- receiving a first address from a processor;
- receiving, at a first state machine engine, a first portion of a first data block from the processor;
- receiving, at a second state machine engine, a second portion of the first data block from the processor, wherein the second portion of the first data block is received at the second state machine engine in parallel with the first state machine engine receiving the first portion of the first data block;
- storing the first portion of the first data block at a first memory location of the first state machine engine corresponding to the first address;
- storing the second portion of the first data block at a second memory location of the second state machine engine corresponding to the first address;
- receiving a second address from the processor;
- receiving, at the first state machine engine, a third portion of the first data block from the processor;
- receiving, at the second state machine engine, a fourth portion of the first data block from the processor, wherein the fourth portion of the first data block is received at the second state machine engine in parallel with the first state machine engine receiving the third portion of the first data block;
- storing the third portion of the first data block at a third memory location of the first state machine engine corresponding to the second address;
- and
- storing the fourth portion of the first data block at a fourth memory location of the second state machine engine corresponding to the second address;
- wherein the first state machine engine receives the third portion of the first data block directly after receiving the first portion of the first data block, the second state machine engine receives the fourth portion of the first data block directly after receiving the second portion of the first data block, the third memory location is offset from the first memory location by a predetermined offset, and the fourth memory location is offset from the second memory location by the predetermined offset.
A method for processing data, comprising:
- receiving, at a plurality of state machine engines, a first data block from a processor to be analyzed by a first state machine engine of the plurality of state machine engines;
- and
- receiving, at the plurality of state machine engines, a second data block from the processor to be analyzed by a second state machine engine of the plurality of state machine engines;
- wherein a length of valid data in the first data block is different from a length of valid data in the second data block.
Dependencies are inferred from the claim text.