IP Library › Granted Patent US 7,484,068
Granted Patent B2
US 7,484,068 · App. 11/489,151 · Granted Jan 27, 2009

Storage space management methods and systems

Assignee: Qisda Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,484,068
App. No.
11/489,151
Granted
Jan 27, 2009
Kind
B2
Abstract

Methods and systems for storage space management are provided. An embodiment of a method manages storage space comprising multiple blocks. Multiple discontinuous and unused regions are merged into a single and consecutive region for each block. For each block, the merged region does not contain the minimum and maximum addresses of the block.

Claims (43)

1. A method of storage space management, managing a storage space, the storage space comprising a plurality of blocks, the method comprising:

merging a plurality of discontinuous and unused regions into a single and consecutive region for each block,

wherein, for each block, the merged region does not contain a minimum and maximum addresses of the block;

determining a defragmentation separator for each block;

merging records located in a left area of the defragmentation separator to generate a consecutive left inner block (LIB) from the leftmost address for each block; and

merging records located in a right area of the defragmentation separator to generate a consecutive right inner block (RIB) from the leftmost address for each block.

2. The method as claimed in claim 1 further comprising moving a record in a first block to an unused region of a second block, resulting in the first block originally storing the moved record becoming a continuous and unused region.

3. The method as claimed in claim 1 further comprising, when a record located in an address range containing the determined defragmentation separator is detected, adopting one of a plurality of strategies to merge the detected record, the strategies comprising:

moving the detected record adjacent to the LIB of the located block;

if the length of the detected record located in a left area of the defragmentation separator exceeds the length of the detected record located in a right area of the defragmentation separator, moving the detected record adjacent to the LIB of the located block, and otherwise, moving the detected record adjacent to the RIB of the located block; and

if an unused region located in a left area of the defragmentation separator exceeds an unused region located in a right area of the defragmentation separator, moving the detected record adjacent to the LIB of the located block, and otherwise, moving the detected record adjacent to the RIB of the located block.

4. The method as claimed in claim 1 wherein the defragmentation separator of i-th block is represented as s×(i−1)+s/2, an address range for a left area of the defragmentation separator is represented as [s×(i−1),s×(i−1) +└s/2 ┘],and an address range for a right area of the defragmentation separator is represented as [s ×(i−1) +└s/2┘,s/×i].

5. The method as claimed in claim 1 further comprising:

determining one record from a plurality of records stored in one block;

determining one block from a plurality of blocks excluding the block containing the determined record, wherein the length of an unused region of the determined block exceeds or equals the length of the determined record; and

moving the determined record into the unused region of the determined block.

6. The method as claimed in claim 5 wherein the moving step further moves the determined record adjacent to the consecutive LIB of the determined block, or moves the determined record adjacent to the consecutive RIB of the determined block.

7. The method as claimed in claim 5 wherein the determined record is a record nearest the defragmentation separator.

8. The method as claimed in claim 1 further comprising:

sorting the blocks according to the lengths of the unused regions in descending order; and

performing block movements contingent upon the sorting results.

9. A machine-readable storage medium for storing a computer program executing by a processing unit, performing a method of storage space management, the processing unit managing a storage space comprising a plurality of blocks, the method comprising:

merging a plurality of discontinuous and unused regions into a single and consecutive region for each block,

wherein, for each block, the merged region does not contain a minimum and maximum addresses of the block,

determining a defragmentation serarator for each block;

merging records located in a left area of the defragmentation serarator to generate a consecutive left inner block (LIB) from the leftmost address for each block; and

merging records located in a right area of the defragmentation serarator to generate a consecutive right inner block (RIB) from the leftmost address for each block.

10. A system of storage space management comprising:

a storage space comprising a plurality of blocks; and

a processing unit coupling to the storage space, merging a plurality of discontinuous and unused regions into a single and consecutive region for each block,

wherein, for each block, the merged region does not contain a minimum and maximum addresses of the block,

wherein the processing unit determines a defragmentation separator for each block, merges records located in a left area of the defragmentation separator to generate a consecutive left inner block (LIB) from the leftmost address for each block, and merges records located in a right area of the defragmentation separator to generate a consecutive right inner block (RIB) from the leftmost address for each block.

11. The system as claimed in claim 10 wherein the processing unit moves a record in a first block to an unused region of a second block, resulting in the first block originally storing the moved record becoming a continuous and unused region.

12. The system as claimed in claim 10 wherein the processing unit, when a record located in an address range containing the determined defragmentation separator is detected, adopts one of a plurality of strategies to merge the detected record, the strategies comprising:

moving the detected record adjacent to the LIB of the located block;

if the length of the detected record located in a left area of the defragmentation separator exceeds the length of the detected record located in a right area of the defragmentation separator, moving the detected record adjacent to the LIB of the located block, and otherwise, moving the detected record adjacent to the RIB of the located block; and

if an unused region located in a left area of the defragmentation separator exceeds an unused region located in a right area of the defragmentation separator, moving the detected record adjacent to the LIB of the located block, and otherwise, moving the detected record adjacent to the RIB of the located block.

13. The system as claimed in claim 10 wherein the defragmentation separator of i-th block is represented as s×(i−1)+s/2, an address range for a left area of the defragmentation separator is represented as [s×(i−1),s×(i−1)+└s/2┘], and an address range for a right area of the defragmentation separator is represented as [s×(i−1)+└s/2┘,s×i].

14. The system as claimed in claim 10 wherein the processing unit determines one record from a plurality of records stored in one block, determines one block from a plurality of blocks excluding the block containing the determined record, length of an unused region of the determined block exceeding or equaling length of the determined record, and moves the determined record into the unused region of the determined block.

15. The system as claimed in claim 14 wherein the processing unit moves the determined record adjacent to the consecutive LIB of the determined block, or moves the determined record adjacent to the consecutive RIB of the determined block.

16. The system as claimed in claim 14 wherein the determined record is a record nearest the defragmentation separator.

17. The system as claimed in claim 10 wherein the processing unit sorts the blocks according to the lengths of the unused regions in descending order and performs block movements contingent upon the sorting results.

18. The system as claimed in claim 10 wherein the storage space is stored in a volatile storage device or a non-volatile storage device.

Assignments (2)
CHANGE OF NAME Recorded Nov 26, 2008
From: BENQ CORPORATION
To: QISDA CORPORATION
Reel/Frame 021899/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2006
From: HU, CHIH-LIN
To: BENQ CORPORATION
Reel/Frame 018034/0876 →
Priority Claims (1)
TW 94124285 A · Jul 19, 2005 · national
Continuity (1)
Related Publication 20070022269A1 · Jan 25, 2007