Identification of non-sequential data stored in memory
First Claim
1. A method comprising:
- receiving packet data;
comparing a first packet byte within the packet data to a first memory byte within memory data;
determining a match between the first packet byte and the first memory byte;
comparing a second packet byte to a second memory byte, the second packet byte being adjacent to the first matched packet byte and the second memory byte being adjacent to the first matched memory byte;
determining a mismatch between the second packet byte and the second memory byte;
after determining the mismatch between the second packet byte and the second memory byte, accessing a memory location containing a third memory byte, the third memory byte being non-adjacent to any matched memory byte;
accessing a packet location containing a third packet byte, the third packet byte being at least two bytes from the location of the mismatched second packet byte;
determining a match between the third packet byte and the third memory byte;
determining that a search threshold has been met;
generating instructions to reassemble the packet data from the memory data; and
processing the instructions to reassemble the packet data based at least in part on a result of the comparison between the packet bytes and the memory bytes.
5 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for identification of data stored in memory are provided. A data packet is received and a first packet byte within the data packet is compared to a first memory byte within a memory. A mismatch is determined between the first packet byte and the first memory byte. A memory location is accessed that contains a second memory byte that is non-consecutive with the first memory byte. A packet location accessed that contains a second packet byte that is non-consecutive with the first packet byte. The second packet byte is compared to the second memory byte. A retrieval instruction is generated based at least in part on a result of the comparison between the second packet byte and the second memory byte. Various embodiments may be included in a network memory architecture to allow for faster data matching and instruction generation in a central appliance.
365 Citations
30 Claims
-
1. A method comprising:
-
receiving packet data; comparing a first packet byte within the packet data to a first memory byte within memory data; determining a match between the first packet byte and the first memory byte; comparing a second packet byte to a second memory byte, the second packet byte being adjacent to the first matched packet byte and the second memory byte being adjacent to the first matched memory byte; determining a mismatch between the second packet byte and the second memory byte; after determining the mismatch between the second packet byte and the second memory byte, accessing a memory location containing a third memory byte, the third memory byte being non-adjacent to any matched memory byte; accessing a packet location containing a third packet byte, the third packet byte being at least two bytes from the location of the mismatched second packet byte; determining a match between the third packet byte and the third memory byte; determining that a search threshold has been met; generating instructions to reassemble the packet data from the memory data; and processing the instructions to reassemble the packet data based at least in part on a result of the comparison between the packet bytes and the memory bytes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a comparison module configured to compare a first packet byte within a packet data to a first memory byte within a memory data, determine a match between the first packet byte and the first memory byte, compare a second packet byte to a second memory byte, the second packet byte being adjacent to the first matched packet byte and the second memory byte being adjacent to the first matched memory byte, determine a mismatch between the second packet byte and the second memory byte, access a memory location containing a third memory byte that is non-adjacent to any matched memory byte after determining the mismatch between the second packet byte and the second memory byte, access a packet location containing a third packet byte, the third packet byte being at least two bytes from the location of the mismatched second packet byte, determine a match between the third packet byte and the third memory byte, and determine that a search threshold has been met; and a data module that generates instructions to reassemble the packet data from the memory data based at least in part on a result of the comparison between the packet bytes and the memory bytes. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer readable medium having embodied thereon a program, the program being executable by a processor for performing a method for generating a retrieval instruction based on matched data, the method comprising:
-
receiving packet data; comparing a first packet byte within the packet data to a first memory byte within memory data; determining a match between the first packet byte and the first memory byte; comparing a second packet byte to a second memory byte, the second packet byte being adjacent to the first matched packet byte and the second memory byte being adjacent to the first matched memory byte; determining a mismatch between the second packet byte and the second memory byte; after determining the mismatch between the second packet byte and the second memory byte, accessing a memory location containing a third memory byte, the third memory byte being non-adjacent to any matched memory byte; accessing a packet location containing a third packet byte, the third packet byte being at least two bytes from the location of the mismatched second packet byte; determining a match between the third packet byte and the third memory byte; determining that a search threshold for the memory has been met; generating instructions to reassemble the packet data from the memory data; and processing the instructions to reassemble the packet data based at least in part on a result of the comparison between the packet bytes and the memory bytes. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification