Segmentation management using a rolling window technique
First Claim
Patent Images
1. A method, comprising:
- receiving a code segment to be inserted into a flash memory storing code segments;
selecting one or more contiguous code segments in flash memory with a total size equal to or larger than the received code segment;
calculating the amount of contiguous code segment data to be removed to insert the received code segment and the cost to relocate the removed code segments to alternate locations in the flash memory; and
if the amount is minimum,moving the one or more selected contiguous code segments and replacing them with the received code segments;
removing the one or more selected contiguous code segments from a table of code segments;
placing the one or more selected contiguous code segments in a list of segments to be added to the table;
placing the received code segment in the table at the location of the one or more removed contiguous code segments; and
sorting the list by decreasing size of code segments.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, device, and system are disclosed. In one embodiment, the method comprises receiving a code segment to be inserted into a flash memory storing code segments, selecting one or more contiguous code segments in flash memory with a total size equal to or larger than the received code segment, calculating the amount of data movement necessary for the one or more selected contiguous code segments, and if the amount is minimum, moving the one or more selected contiguous code segments and replacing them with the received code segment.
12 Citations
12 Claims
-
1. A method, comprising:
-
receiving a code segment to be inserted into a flash memory storing code segments; selecting one or more contiguous code segments in flash memory with a total size equal to or larger than the received code segment; calculating the amount of contiguous code segment data to be removed to insert the received code segment and the cost to relocate the removed code segments to alternate locations in the flash memory; and if the amount is minimum, moving the one or more selected contiguous code segments and replacing them with the received code segments; removing the one or more selected contiguous code segments from a table of code segments; placing the one or more selected contiguous code segments in a list of segments to be added to the table; placing the received code segment in the table at the location of the one or more removed contiguous code segments; and sorting the list by decreasing size of code segments. - View Dependent Claims (2, 3)
-
-
4. A device, comprising:
-
a memory to store a table of code segments and a list of segments to be added to the table; a segment receiving unit to receive a code segment and place the code segment in the list of segments to be added to the table; a segment selection unit to select one or more contiguous code segments in the table with a total size greater than or equal to the received code segment; a data movement calculation unit to calculate the necessary amount of contiguous code segment data to be removed to insert the received code segment and the cost to relocate the removed code segments to alternate locations in a flash memory; and if the calculated amount of data movement is minimum, a segment rearranging unit to move the one or more selected contiguous code segments to one or more different locations in flash memory and replace them with the received code segments; remove the one or more selected contiguous code segments from the table; place the one or more selected contiguous code segments in the list; place the received code segment in the table at the location of the one or more removed contiguous code segments; and sort the list by decreasing size of code segments. - View Dependent Claims (5, 6, 7)
-
-
8. A system, comprising:
-
an interconnect; a processor coupled to the interconnect; a flash memory device coupled to the interconnect; a memory, coupled to the interconnect, to store a table of code segments representing code segments stored in the flash memory device; and a list of segments to be added to the table; and a segmentation management device, coupled to the interconnect, further comprising; a segment receiving unit, operable to receive a code segment for storage in the flash memory; and place the code segment in the list of segments to be added to the table; a segment selection unit, operable to select one or more contiguous code segments in the table with a total size greater than or equal to the received code segment; a data movement calculation unit, operable to calculate the amount of calculating the amount of contiguous code segment data to be removed to insert the received code segment and the cost to relocate the removed code segments to alternate locations in the flash memory; and if the calculated amount of data movement is minimum, a segment rearranging unit operable to move the selected contiguous code segment and replace with the received code segment in the flash memory; remove the one or more selected contiguous code segments from the table; place the one or more selected contiguous code segments in the list; place the received code segment in the table at the location of the one or more removed contiguous code segments; and sort the list by decreasing size of code segments. - View Dependent Claims (9, 10, 11, 12)
-
Specification